diff --git a/src/harness/fourslashImpl.ts b/src/harness/fourslashImpl.ts index 53dbe674afa3b..4499ff97f8107 100644 --- a/src/harness/fourslashImpl.ts +++ b/src/harness/fourslashImpl.ts @@ -63,6 +63,8 @@ export interface Range extends ts.TextRange { marker?: Marker; } +export type MarkerOrNameOrRange = string | Marker | Range; + interface LocationInformation { position: number; sourcePosition: number; @@ -74,10 +76,6 @@ interface RangeLocationInformation extends LocationInformation { marker?: Marker; } -interface ImplementationLocationInformation extends ts.ImplementationLocation { - matched?: boolean; -} - export interface TextSpan { start: number; end: number; @@ -103,6 +101,48 @@ function convertGlobalOptionsToCompilerOptions(globalOptions: Harness.TestCasePa return settings; } +function isMarker(x: Marker | Range): x is Marker { + return (x as Marker).position !== undefined; +} + +function convertDocumentSpanToString(span: T, prefix?: string, ignoredProperties?: readonly string[]) { + let text = prefix || ""; + for (const p in span) { + if (p === "textSpan" || p === "fileName" || p === "contextSpan") continue; + if (ts.contains(ignoredProperties, p)) continue; + if (ts.hasProperty(span, p) && !!span[p]) { // Serialize truthy properties + const propText = `${p}: ${JSON.stringify(span[p])}`; + if (text) text += `, ${propText}`; + else text = propText; + } + } + return text; +} + +function readableJsoncBaseline(content: string) { + return content.split(/\r?\n/).map(l => "// " + l).join("\n"); +} + +function indentJsonBaseline(content: string) { + return content.split(/\r?\n/).map(l => l ? " " + l : "").join("\n"); +} + +interface MarkerAndNameForBaseline { + markerOrRange: MarkerOrNameOrRange; + markerName: string; +} +interface BaselineDocumentSpansWithFileContentsOptions { + markerInfo: MarkerAndNameForBaseline | undefined; + documentSpanId?: (span: T) => string; + skipDocumentSpanDetails?: boolean; + skipDocumentContainingOnlyMarker?: boolean; + endMarker?: string; + startMarkerPrefix?: (span: T) => string | undefined; + endMarkerSuffix?: (span: T) => string | undefined; + ignoredDocumentSpanProperties?: readonly string[]; + additionalSpan?: ts.DocumentSpan; +} + export class TestCancellationToken implements ts.HostCancellationToken { // 0 - cancelled // >0 - not cancelled @@ -446,6 +486,12 @@ export class TestState { this.goToPosition(marker.position); } + private goToMarkerOrNameOrRange(markerOrRange: MarkerOrNameOrRange) { + return ts.isString(markerOrRange) || isMarker(markerOrRange) ? + this.goToMarker(markerOrRange) : + this.goToRangeStart(markerOrRange); + } + public goToEachMarker(markers: readonly Marker[], action: (marker: Marker, index: number) => void) { assert(markers.length); for (let i = 0; i < markers.length; i++) { @@ -695,21 +741,6 @@ export class TestState { } } - public verifyGoToDefinitionIs(endMarker: ArrayOrSingle) { - this.verifyGoToXWorker(/*startMarker*/ undefined, toArray(endMarker), () => this.getGoToDefinition()); - } - - public verifyGoToDefinition(arg0: any, endMarkerNames?: ArrayOrSingle | { file: string, unverified?: boolean }) { - this.verifyGoToX(arg0, endMarkerNames, () => this.getGoToDefinitionAndBoundSpan()); - } - - public verifyGoToSourceDefinition(startMarkerNames: ArrayOrSingle, end?: ArrayOrSingle | { file: string, unverified?: boolean }) { - if (this.testType !== FourSlashTestType.Server) { - this.raiseError("goToSourceDefinition may only be used in fourslash/server tests."); - } - this.verifyGoToX(startMarkerNames, end, () => (this.languageService as ts.server.SessionClient).getSourceDefinitionAndBoundSpan(this.activeFile.fileName, this.currentCaretPosition)!); - } - private getGoToDefinition(): readonly ts.DefinitionInfo[] { return this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition)!; } @@ -718,115 +749,6 @@ export class TestState { return this.languageService.getDefinitionAndBoundSpan(this.activeFile.fileName, this.currentCaretPosition)!; } - public verifyGoToType(arg0: any, endMarkerNames?: ArrayOrSingle) { - this.verifyGoToX(arg0, endMarkerNames, () => - this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition)); - } - - private verifyGoToX(arg0: any, endMarkerNames: ArrayOrSingle | { file: string, unverified?: boolean } | undefined, getDefs: () => readonly ts.DefinitionInfo[] | ts.DefinitionInfoAndBoundSpan | undefined) { - if (endMarkerNames) { - this.verifyGoToXPlain(arg0, endMarkerNames, getDefs); - } - else if (ts.isArray(arg0)) { - const pairs = arg0 as readonly [ArrayOrSingle, ArrayOrSingle][]; - for (const [start, end] of pairs) { - this.verifyGoToXPlain(start, end, getDefs); - } - } - else { - const obj: { [startMarkerName: string]: ArrayOrSingle } = arg0; - for (const startMarkerName in obj) { - if (ts.hasProperty(obj, startMarkerName)) { - this.verifyGoToXPlain(startMarkerName, obj[startMarkerName], getDefs); - } - } - } - } - - private verifyGoToXPlain(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle | { file: string, unverified?: boolean }, getDefs: () => readonly ts.DefinitionInfo[] | ts.DefinitionInfoAndBoundSpan | undefined) { - for (const start of toArray(startMarkerNames)) { - this.verifyGoToXSingle(start, endMarkerNames, getDefs); - } - } - - public verifyGoToDefinitionForMarkers(markerNames: string[]) { - for (const markerName of markerNames) { - this.verifyGoToXSingle(`${markerName}Reference`, `${markerName}Definition`, () => this.getGoToDefinition()); - } - } - - private verifyGoToXSingle(startMarkerName: string, endMarkerNames: ArrayOrSingle | { file: string, unverified?: boolean }, getDefs: () => readonly ts.DefinitionInfo[] | ts.DefinitionInfoAndBoundSpan | undefined) { - this.goToMarker(startMarkerName); - this.verifyGoToXWorker(startMarkerName, toArray(endMarkerNames), getDefs, startMarkerName); - } - - private verifyGoToXWorker(startMarker: string | undefined, endMarkers: readonly (string | { marker?: string, file?: string, unverified?: boolean })[], getDefs: () => readonly ts.DefinitionInfo[] | ts.DefinitionInfoAndBoundSpan | undefined, startMarkerName?: string) { - const defs = getDefs(); - let definitions: readonly ts.DefinitionInfo[]; - let testName: string; - - if (!defs || ts.isArray(defs)) { - definitions = defs as ts.DefinitionInfo[] || []; - testName = "goToDefinitions"; - } - else { - this.verifyDefinitionTextSpan(defs, startMarkerName!); - - definitions = defs.definitions!; // TODO: GH#18217 - testName = "goToDefinitionsAndBoundSpan"; - } - - if (endMarkers.length !== definitions.length) { - const markers = definitions.map(d => ({ text: "HERE", fileName: d.fileName, position: d.textSpan.start })); - const actual = this.renderMarkers(markers); - this.raiseError(`${testName} failed - expected to find ${endMarkers.length} definitions but got ${definitions.length}\n\n${actual}`); - } - - ts.zipWith(endMarkers, definitions, (endMarkerOrFileResult, definition, i) => { - const markerName = typeof endMarkerOrFileResult === "string" ? endMarkerOrFileResult : endMarkerOrFileResult.marker; - const marker = markerName !== undefined ? this.getMarkerByName(markerName) : undefined; - const expectedFileName = marker?.fileName || typeof endMarkerOrFileResult !== "string" && endMarkerOrFileResult.file; - ts.Debug.assert(typeof expectedFileName === "string"); - const expectedPosition = marker?.position || 0; - if (ts.comparePaths(expectedFileName, definition.fileName, /*ignoreCase*/ true) !== ts.Comparison.EqualTo || expectedPosition !== definition.textSpan.start) { - const markers = [{ text: "EXPECTED", fileName: expectedFileName, position: expectedPosition }, { text: "ACTUAL", fileName: definition.fileName, position: definition.textSpan.start }]; - const text = this.renderMarkers(markers); - this.raiseError(`${testName} failed for definition ${markerName || expectedFileName} (${i}): expected ${expectedFileName} at ${expectedPosition}, got ${definition.fileName} at ${definition.textSpan.start}\n\n${text}\n`); - } - if (definition.unverified && (typeof endMarkerOrFileResult === "string" || !endMarkerOrFileResult.unverified)) { - const isFileResult = typeof endMarkerOrFileResult !== "string" && !!endMarkerOrFileResult.file; - this.raiseError( - `${testName} failed for definition ${markerName || expectedFileName} (${i}): The actual definition was an \`unverified\` result. Use:\n\n` + - ` verify.goToDefinition(${startMarker === undefined ? "startMarker" : `"${startMarker}"`}, { ${isFileResult ? `file: "${expectedFileName}"` : `marker: "${markerName}"`}, unverified: true })\n\n` + - `if this is expected.` - ); - } - }); - } - - private verifyDefinitionTextSpan(defs: ts.DefinitionInfoAndBoundSpan, startMarkerName: string) { - const range = this.testData.ranges.find(range => this.markerName(range.marker!) === startMarkerName); - - if (!range && !defs.textSpan) { - return; - } - - if (!range) { - const marker = this.getMarkerByName(startMarkerName); - const startFile = marker.fileName; - const fileContent = this.getFileContent(startFile); - const spanContent = fileContent.slice(defs.textSpan.start, ts.textSpanEnd(defs.textSpan)); - const spanContentWithMarker = spanContent.slice(0, marker.position - defs.textSpan.start) + `/*${startMarkerName}*/` + spanContent.slice(marker.position - defs.textSpan.start); - const suggestedFileContent = (fileContent.slice(0, defs.textSpan.start) + `\x1b[1;4m[|${spanContentWithMarker}|]\x1b[0;31m` + fileContent.slice(ts.textSpanEnd(defs.textSpan))) - .split(/\r?\n/).map(line => " ".repeat(6) + line).join(ts.sys.newLine); - this.raiseError(`goToDefinitionsAndBoundSpan failed. Found a starting TextSpan around '${spanContent}' in '${startFile}' (at position ${defs.textSpan.start}). ` - + `If this is the correct input span, put a fourslash range around it: \n\n${suggestedFileContent}\n`); - } - else { - this.assertTextSpanEqualsRange(defs.textSpan, range, "goToDefinitionsAndBoundSpan failed"); - } - } - private renderMarkers(markers: { text: string, fileName: string, position: number }[], useTerminalBoldSequence = true) { const filesToDisplay = ts.deduplicate(markers.map(m => m.fileName), ts.equateValues); return filesToDisplay.map(fileName => { @@ -843,6 +765,43 @@ export class TestState { } } + private baselineGoToDefs( + markerName: string, + markerOrRange: MarkerOrNameOrRange, + getDefs: () => readonly ts.DefinitionInfo[] | readonly ts.ImplementationLocation[] | ts.DefinitionInfoAndBoundSpan | undefined, + ) { + this.goToMarkerOrNameOrRange(markerOrRange); + const defs = getDefs(); + const defIdMap = new Map(); + const definitions = defs ? ts.isArray(defs) ? defs : defs.definitions : undefined; + if (definitions?.length! > 1) { + definitions!.forEach((def, index) => defIdMap.set(def, index)); + } + let baseline = this.getBaselineForDocumentSpansWithFileContents( + definitions, + { + markerInfo: { markerOrRange, markerName }, + documentSpanId: defIdMap.size ? def => `defId: ${defIdMap.get(def)}` : undefined, + skipDocumentSpanDetails: true, + additionalSpan: defs && !ts.isArray(defs) ? { fileName: this.activeFile.fileName, textSpan: defs.textSpan } : undefined, + }, + ); + if (definitions?.length) { + baseline += "\n\n"; + baseline += indentJsonBaseline( + "// === Details ===\n" + + JSON.stringify(definitions.map(def => ({ + defId: defIdMap.get(def), + ...def, + fileName: undefined, + textSpan: undefined, + contextSpan: undefined, + })), undefined, " ") + ); + } + return baseline; + } + public verifyGetEmitOutputForCurrentFile(expected: string): void { const emit = this.languageService.getEmitOutput(this.activeFile.fileName); if (emit.outputFiles.length !== 1) { @@ -1200,97 +1159,436 @@ export class TestState { } } - public verifyBaselineFindAllReferences(...markerNames: string[]) { - ts.Debug.assert(markerNames.length > 0, "Must pass at least one marker name to `verifyBaselineFindAllReferences()`"); - this.verifyBaselineFindAllReferencesWorker("", markerNames); - } - - // Used when a single test needs to produce multiple baselines - public verifyBaselineFindAllReferencesMulti(seq: number, ...markerNames: string[]) { - ts.Debug.assert(markerNames.length > 0, "Must pass at least one marker name to `baselineFindAllReferences()`"); - this.verifyBaselineFindAllReferencesWorker(`.${seq}`, markerNames); - } + public verifyBaselineCommands(...commands: FourSlashInterface.BaselineCommand[]) { + let baselineContent = ""; + const baselineEachMarkerOrRange = ( + command: FourSlashInterface.BaselineCommandWithMarkerOrRange, + worker: (markerORange: MarkerOrNameOrRange) => string, + ) => { + let done = false; + if (command.markerOrRange !== undefined) { + done = baselineArrayOrSingle(command, command.markerOrRange, worker); + } + if (command.rangeText !== undefined) { + toArray(command.rangeText).forEach(text => + done = baselineArrayOrSingle(command, this.rangesByText().get(text)!, worker) || done); + } + if (!done) { + baselineArrayOrSingle(command, this.getRanges(), worker); + } + }; + commands.forEach(command => { + switch (command.type) { + case "findAllReferences": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineFindAllReferencesWorker(markerOrRange), + ); + case "getFileReferences": + return baselineArrayOrSingle( + command, + command.fileName, + fileName => this.baselineGetFileReferences(fileName), + ); + case "findRenameLocations": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineRenameWorker(markerOrRange, command.options), + ); + case "goToDefinition": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGoToDefs( + "/*GOTO DEF*/", + markerOrRange, + () => this.getGoToDefinitionAndBoundSpan(), + ), + ); + case "getDefinitionAtPosition": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGoToDefs( + "/*GOTO DEF POS*/", + markerOrRange, + () => this.getGoToDefinition(), + ), + ); + case "goToSourceDefinition": + if (this.testType !== FourSlashTestType.Server) { + this.raiseError("goToSourceDefinition may only be used in fourslash/server tests."); + } + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGoToDefs( + "/*GOTO SOURCE DEF*/", + markerOrRange, + () => (this.languageService as ts.server.SessionClient) + .getSourceDefinitionAndBoundSpan(this.activeFile.fileName, this.currentCaretPosition), + ), + ); + case "goToType": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGoToDefs( + "/*GOTO TYPE*/", + markerOrRange, + () => this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition), + ), + ); + case "goToImplementation": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGoToDefs( + "/*GOTO IMPL*/", + markerOrRange, + () => this.languageService.getImplementationAtPosition(this.activeFile.fileName, this.currentCaretPosition), + ), + ); + case "documentHighlights": + return baselineEachMarkerOrRange( + command, + markerOrRange => this.baselineGetDocumentHighlights(markerOrRange, command.options), + ); + case "customWork": + return addToBaseline(command, readableJsoncBaseline(command.work() || "")); + default: + ts.Debug.assertNever(command); + } + }); + Harness.Baseline.runBaseline(this.getBaselineFileNameForContainingTestFile(".baseline.jsonc"), baselineContent); - private verifyBaselineFindAllReferencesWorker(suffix: string, markerNames: string[]) { - const baseline = markerNames.map(markerName => { - this.goToMarker(markerName); - const marker = this.getMarkerByName(markerName); - const references = this.languageService.findReferences(marker.fileName, marker.position); - const refsByFile = references - ? ts.group(ts.sort(ts.flatMap(references, r => r.references), (a, b) => a.textSpan.start - b.textSpan.start), ref => ref.fileName) - : ts.emptyArray; + function baselineArrayOrSingle( + command: FourSlashInterface.BaselineCommand, + arrayOrSingle: ArrayOrSingle, + worker: (single: T) => string, + ) { + if (ts.isArray(arrayOrSingle)) { + arrayOrSingle.forEach(single => addToBaseline(command, worker(single))); + return !!arrayOrSingle.length; + } + else { + addToBaseline(command, worker(arrayOrSingle)); + return true; + } + } - // Write input files - const baselineContent = this.getBaselineContentForGroupedReferences(refsByFile, markerName); + function addToBaseline(command: FourSlashInterface.BaselineCommand, text: string) { + if (baselineContent) baselineContent += "\n\n\n\n"; + baselineContent += `// === ${command.type} ===\n` + text; + } + } - // Write response JSON - return baselineContent + JSON.stringify(references, undefined, 2); - }).join("\n\n"); - Harness.Baseline.runBaseline(this.getBaselineFileNameForContainingTestFile(`${suffix}.baseline.jsonc`), baseline); + private baselineFindAllReferencesWorker(markerOrRange: MarkerOrNameOrRange) { + this.goToMarkerOrNameOrRange(markerOrRange); + const references = this.findReferencesAtCaret(); + const defIdMap = new Map(); + const markerInfo = { markerOrRange, markerName: "/*FIND ALL REFS*/" }; + let baseline = this.getBaselineForDocumentSpansWithFileContents( + ts.flatMap(references, (r, def) => { + if (references!.length > 1) { + defIdMap.set(r.definition, def); + r.references.forEach(r => defIdMap.set(r, def)); + } + return r.references; + }), + { + markerInfo, + documentSpanId: defIdMap.size ? ref => `defId: ${defIdMap.get(ref)}` : undefined, + }, + ); + if (references?.length) { + baseline += "\n\n"; + baseline += indentJsonBaseline( + "// === Definitions ===\n" + + this.getBaselineForDocumentSpansWithFileContents( + references.map(r => r.definition), + { + markerInfo, + documentSpanId: defIdMap.size ? def => `defId: ${defIdMap.get(def)}` : undefined, + skipDocumentSpanDetails: true, + skipDocumentContainingOnlyMarker: true, + } + ) + + "\n\n// === Details ===\n" + + JSON.stringify(references.map(r => ({ + defId: defIdMap.get(r.definition), + ...r.definition, + fileName: undefined, + textSpan: undefined, + contextSpan: undefined, + })), undefined, " ") + ); + } + return baseline; } - public verifyBaselineGetFileReferences(fileName: string) { + private baselineGetFileReferences(fileName: string) { const references = this.languageService.getFileReferences(fileName); - const refsByFile = references - ? ts.group(ts.sort(references, (a, b) => a.textSpan.start - b.textSpan.start), ref => ref.fileName) - : ts.emptyArray; + return `// fileName: ${fileName}\n\n` + this.getBaselineForDocumentSpansWithFileContents( + references, + { markerInfo: undefined }, + ); + } + private getBaselineForDocumentSpansWithFileContents( + spans: readonly T[] | undefined, + options: BaselineDocumentSpansWithFileContentsOptions, + ): string { // Write input files - let baselineContent = this.getBaselineContentForGroupedReferences(refsByFile); - - // Write response JSON - baselineContent += JSON.stringify(references, undefined, 2); - Harness.Baseline.runBaseline(this.getBaselineFileNameForContainingTestFile(".baseline.jsonc"), baselineContent); + return this.getBaselineForGroupedDocumentSpansWithFileContents( + spans ? ts.group(spans, span => span.fileName) : ts.emptyArray, + options, + ); } - private getBaselineContentForGroupedReferences(refsByFile: readonly (readonly ts.ReferenceEntry[])[], markerName?: string) { - const marker = markerName !== undefined ? this.getMarkerByName(markerName) : undefined; - let baselineContent = ""; - for (const group of refsByFile) { - baselineContent += getBaselineContentForFile(group[0].fileName, this.getFileContent(group[0].fileName)); - baselineContent += "\n\n"; - } - return baselineContent; - - function getBaselineContentForFile(fileName: string, content: string) { - let newContent = `=== ${fileName} ===\n`; - let pos = 0; - for (const { textSpan } of refsByFile.find(refs => refs[0].fileName === fileName) ?? ts.emptyArray) { - const end = textSpan.start + textSpan.length; - if (fileName === marker?.fileName && pos <= marker.position && marker.position < textSpan.start) { - newContent += content.slice(pos, marker.position); - newContent += "/*FIND ALL REFS*/"; - pos = marker.position; + private getBaselineForGroupedDocumentSpansWithFileContents( + spansByFile: readonly (readonly T[])[], + options: BaselineDocumentSpansWithFileContentsOptions, + ) { + const { + markerInfo, + documentSpanId, + skipDocumentSpanDetails, + skipDocumentContainingOnlyMarker, + additionalSpan, + } = options; + const marker: Marker | undefined = markerInfo !== undefined ? + ts.isString(markerInfo.markerOrRange) ? + this.getMarkerByName(markerInfo.markerOrRange) : + isMarker(markerInfo.markerOrRange) ? + markerInfo.markerOrRange : + { fileName: markerInfo.markerOrRange.fileName, position: markerInfo.markerOrRange.pos } : + undefined; + const fileBaselines: string[] = []; + let foundMarker = false; + let foundAdditionalSpan = false; + const spanToContextId = new Map(); + for (const group of spansByFile) { + if (group.length) { + const contentOfFile = this.tryGetFileContent(group[0].fileName); + if (contentOfFile !== undefined) { + fileBaselines.push(this.getBaselineContentForFile( + group[0].fileName, + contentOfFile, + group, + marker, + options, + spanToContextId, + )); + foundMarker ||= group[0].fileName === marker?.fileName; + foundAdditionalSpan ||= !!additionalSpan && additionalSpan.fileName === group[0].fileName; } - newContent += content.slice(pos, textSpan.start); - pos = textSpan.start; - // It's easier to read if the /*FIND ALL REFS*/ comment is outside the range markers, which makes - // this code a bit more verbose than it would be if I were less picky about the baseline format. - if (fileName === marker?.fileName && marker.position === textSpan.start) { - newContent += "/*FIND ALL REFS*/"; - newContent += "[|"; + else { + let baseline = `// === ${group[0].fileName} ===\n// Unavailable file content:\n`; + for (const span of group) { + baseline += `// textSpan: ${JSON.stringify(span.textSpan)}${span.contextSpan ? `, contextSpan: ${JSON.stringify(span.contextSpan)}` : ""}`; + const text = !skipDocumentSpanDetails ? + convertDocumentSpanToString(span, documentSpanId?.(span)) : + documentSpanId?.(span); + if (text) baseline += ` ${text}`; + baseline += "\n"; + } + fileBaselines.push(baseline); } - else if (fileName === marker?.fileName && ts.textSpanContainsPosition(textSpan, marker.position)) { - newContent += "[|"; - newContent += content.slice(pos, marker.position); - newContent += "/*FIND ALL REFS*/"; - pos = marker.position; + } + } + if (additionalSpan && !foundAdditionalSpan) { + fileBaselines.push(this.getBaselineContentForFile( + additionalSpan.fileName, + this.getFileContent(additionalSpan.fileName), + [additionalSpan], + marker, + { markerInfo }, + spanToContextId, + )); + foundMarker ||= additionalSpan.fileName === marker?.fileName; + } + if (!skipDocumentContainingOnlyMarker && !foundMarker && marker?.fileName) { + fileBaselines.push(this.getBaselineContentForFile( + marker.fileName, + this.getFileContent(marker.fileName), + ts.emptyArray, + marker, + { markerInfo }, + spanToContextId, + )); + } + return fileBaselines.join("\n\n"); + } + + private getBaselineContentForFile( + fileName: string, + content: string, + group: readonly T[], + marker: Marker | undefined, + { + markerInfo, + documentSpanId, + skipDocumentSpanDetails, + endMarker, + startMarkerPrefix, + endMarkerSuffix, + ignoredDocumentSpanProperties, + additionalSpan, + }: BaselineDocumentSpansWithFileContentsOptions, + spanToContextId: Map, + ) { + let newContent = `=== ${fileName} ===\n`; + interface Detail { + location: number; + locationMarker: string; + span?: T; + type?: "textStart" | "textEnd" | "contextStart" | "contextEnd"; + } + const detailPrefixes = new Map(); + const detailSuffixes = new Map(); + const details: Detail[] = []; + let groupedSpanForAdditionalSpan: T | undefined; + if (fileName === marker?.fileName) details.push({ location: marker.position, locationMarker: markerInfo!.markerName }); + let canDetermineContextIdInline = true; + for (const span of group) { + const contextSpanIndex = details.length; + if (span.contextSpan) { + details.push({ location: span.contextSpan.start, locationMarker: "<|", span, type: "contextStart" }); + if (canDetermineContextIdInline && span.contextSpan.start > span.textSpan.start) { + // Need to do explicit pass to determine contextId since contextId starts after textStart + canDetermineContextIdInline = false; + } + } + const textSpanIndex = details.length; + const textSpanEnd = ts.textSpanEnd(span.textSpan); + details.push( + { location: span.textSpan.start, locationMarker: "[|", span, type: "textStart" }, + { location: textSpanEnd, locationMarker: endMarker || "|]", span, type: "textEnd" }, + ); + let contextSpanEnd: number | undefined; + if (span.contextSpan) { + contextSpanEnd = ts.textSpanEnd(span.contextSpan); + details.push({ location: contextSpanEnd, locationMarker: "|>", span, type: "contextEnd" }); + } + + if (additionalSpan && ts.documentSpansEqual(additionalSpan, span)) { + // This span is same as text span + groupedSpanForAdditionalSpan = span; + } + + const startPrefix = startMarkerPrefix?.(span); + if (startPrefix) { + if (fileName === marker?.fileName && span.textSpan.start === marker?.position) { + ts.Debug.assert(!detailPrefixes.has(details[0]), "Expected only single prefix at marker location"); + detailPrefixes.set(details[0], startPrefix); + } + else if (span.contextSpan?.start === span.textSpan.start) { + // Write it at contextSpan instead of textSpan + detailPrefixes.set(details[contextSpanIndex], startPrefix); } else { - newContent += "[|"; + // At textSpan + detailPrefixes.set(details[textSpanIndex], startPrefix); } - newContent += content.slice(pos, end); - newContent += "|]"; - pos = end; } - if (marker?.fileName === fileName && marker.position >= pos) { - newContent += content.slice(pos, marker.position); - newContent += "/*FIND ALL REFS*/"; - pos = marker.position; + + const endSuffix = endMarkerSuffix?.(span); + if (endSuffix) { + if (fileName === marker?.fileName && textSpanEnd === marker?.position) { + ts.Debug.assert(!detailSuffixes.has(details[0]), "Expected only single suffix at marker location"); + detailSuffixes.set(details[0], endSuffix); + } + else if (contextSpanEnd === textSpanEnd) { + // Write it at contextSpan instead of textSpan + detailSuffixes.set(details[textSpanIndex + 2], endSuffix); + } + else { + // At textSpan + detailSuffixes.set(details[textSpanIndex + 1], endSuffix); + } } - newContent += content.slice(pos); - return newContent.split(/\r?\n/).map(l => "// " + l).join("\n"); } + let pos = 0; + const sortedDetails = ts.stableSort(details, (a, b) => ts.compareValues(a.location, b.location)); + if (!canDetermineContextIdInline) { + // Assign contextIds + sortedDetails.forEach(({ span, type }) => { + if (type === "contextStart") { + spanToContextId.set(span!, spanToContextId.size); + } + }); + } + // Our preferred way to write marker is + // /*MARKER*/[| some text |] + // [| some /*MARKER*/ text |] + // [| some text |]/*MARKER*/ + // Stable sort should handle first two cases but with that marker will be before rangeEnd if locations match + // So we will defer writing marker in this case by checking and finding index of rangeEnd if same + let deferredMarkerIndex: number | undefined; + sortedDetails.forEach((detail, index) => { + const { location, locationMarker, span, type } = detail; + if (!span && deferredMarkerIndex === undefined) { + // If this is marker position and its same as textEnd and/or contextEnd we want to write marker after those + for (let matchingEndPosIndex = index + 1; matchingEndPosIndex < sortedDetails.length; matchingEndPosIndex++) { + // Defer after the location if its same as rangeEnd + if (sortedDetails[matchingEndPosIndex].location === location && + sortedDetails[matchingEndPosIndex].type!.endsWith("End")) { + deferredMarkerIndex = matchingEndPosIndex; + } + // Dont defer further than already determined + break; + } + // Defer writing marker position to deffered marker index + if (deferredMarkerIndex !== undefined) return; + } + newContent += content.slice(pos, location); + pos = location; + // Prefix + const prefix = detailPrefixes.get(detail); + if (prefix) newContent += prefix; + newContent += locationMarker; + if (span) { + switch (type) { + case "textStart": + let text = !skipDocumentSpanDetails ? + convertDocumentSpanToString(span, documentSpanId?.(span), ignoredDocumentSpanProperties) : + documentSpanId?.(span); + if (span === groupedSpanForAdditionalSpan) { + text = `textSpan: true` + (text ? `, ${text}` : ""); + } + const contextId = spanToContextId.get(span); + if (contextId !== undefined) { + let isAfterContextStart = false; + for (let textStartIndex = index - 1; textStartIndex >= 0; textStartIndex--) { + const textStartDetail = sortedDetails[textStartIndex]; + if (textStartDetail.type === "contextStart" && textStartDetail.span === span) { + isAfterContextStart = true; + break; + } + // Marker is ok to skip over + if (textStartDetail.span) break; + } + // Skip contextId on span thats surrounded by context span immediately + if (!isAfterContextStart) { + text = `contextId: ${contextId}` + (text ? `, ${text}` : ""); + } + } + if (text) newContent += `{| ${text} |}`; + break; + case "contextStart": + if (canDetermineContextIdInline) { + spanToContextId.set(span, spanToContextId.size); + } + break; + } + if (deferredMarkerIndex === index) { + // Write the marker + newContent += markerInfo!.markerName; + deferredMarkerIndex = undefined; + detail = details[0]; // Marker detail + } + } + const suffix = detailSuffixes.get(detail); + if (suffix) newContent += suffix; + }); + newContent += content.slice(pos); + return readableJsoncBaseline(newContent); } private assertObjectsEqual(fullActual: T, fullExpected: T, msgPrefix = ""): void { @@ -1334,20 +1632,6 @@ export class TestState { } - public verifyDisplayPartsOfReferencedSymbol(expected: ts.SymbolDisplayPart[]) { - const referencedSymbols = this.findReferencesAtCaret()!; - - if (referencedSymbols.length === 0) { - this.raiseError("No referenced symbols found at current caret position"); - } - else if (referencedSymbols.length > 1) { - this.raiseError("More than one referenced symbol found"); - } - - assert.equal(TestState.getDisplayPartsJson(referencedSymbols[0].definition.displayParts), - TestState.getDisplayPartsJson(expected), this.messageAtLastKnownMarker("referenced symbol definition display parts")); - } - private configure(preferences: ts.UserPreferences) { if (this.testType === FourSlashTestType.Server) { (this.languageService as ts.server.SessionClient).configure(preferences); @@ -1479,104 +1763,41 @@ export class TestState { } } - public verifyRangesAreRenameLocations(options?: Range[] | { findInStrings?: boolean, findInComments?: boolean, ranges?: Range[] }) { - if (ts.isArray(options)) { - this.verifyRenameLocations(options, options); - } - else { - const ranges = options && options.ranges || this.getRanges(); - this.verifyRenameLocations(ranges, { ranges, ...options }); - } - } - - public verifyRenameLocations(startRanges: ArrayOrSingle, options: FourSlashInterface.RenameLocationsOptions) { - interface RangeMarkerData { - id?: string; - contextRangeIndex?: number, - contextRangeDelta?: number - contextRangeId?: string; - } - const { findInStrings = false, findInComments = false, ranges = this.getRanges(), providePrefixAndSuffixTextForRename = true } = - ts.isArray(options) - ? { findInStrings: false, findInComments: false, ranges: options, providePrefixAndSuffixTextForRename: true } - : options; - - const _startRanges = toArray(startRanges); - assert(_startRanges.length); - for (const startRange of _startRanges) { - this.goToRangeStart(startRange); - - const renameInfo = this.languageService.getRenameInfo(this.activeFile.fileName, this.currentCaretPosition, { providePrefixAndSuffixTextForRename }); - if (!renameInfo.canRename) { - this.raiseError("Expected rename to succeed, but it actually failed."); - break; - } - - const references = this.languageService.findRenameLocations( - this.activeFile.fileName, this.currentCaretPosition, findInStrings, findInComments, providePrefixAndSuffixTextForRename); - - const sort = (locations: readonly ts.RenameLocation[] | undefined) => - locations && ts.sort(locations, (r1, r2) => ts.compareStringsCaseSensitive(r1.fileName, r2.fileName) || r1.textSpan.start - r2.textSpan.start); - assert.deepEqual(sort(references), sort(ranges.map((rangeOrOptions): ts.RenameLocation => { - const { range, ...prefixSuffixText } = "range" in rangeOrOptions ? rangeOrOptions : { range: rangeOrOptions }; // eslint-disable-line local/no-in-operator - const { contextRangeIndex, contextRangeDelta, contextRangeId } = (range.marker && range.marker.data || {}) as RangeMarkerData; - let contextSpan: ts.TextSpan | undefined; - if (contextRangeDelta !== undefined) { - const allRanges = this.getRanges(); - const index = allRanges.indexOf(range); - if (index !== -1) { - contextSpan = ts.createTextSpanFromRange(allRanges[index + contextRangeDelta]); - } - } - else if (contextRangeId !== undefined) { - const allRanges = this.getRanges(); - const contextRange = ts.find(allRanges, range => (range.marker?.data as RangeMarkerData)?.id === contextRangeId); - if (contextRange) { - contextSpan = ts.createTextSpanFromRange(contextRange); - } - } - else if (contextRangeIndex !== undefined) { - contextSpan = ts.createTextSpanFromRange(this.getRanges()[contextRangeIndex]); - } - return { - fileName: range.fileName, - textSpan: ts.createTextSpanFromRange(range), - ...(contextSpan ? { contextSpan } : undefined), - ...prefixSuffixText - }; - }))); - } - } - - public baselineRename(marker: string, options: FourSlashInterface.RenameOptions) { - const { fileName, position } = this.getMarkerByName(marker); + private baselineRenameWorker(markerOrRange: MarkerOrNameOrRange, options?: FourSlashInterface.RenameOptions) { + const { fileName, position } = ts.isString(markerOrRange) ? + this.getMarkerByName(markerOrRange) : + isMarker(markerOrRange) ? + markerOrRange : + { fileName: markerOrRange.fileName, position: markerOrRange.pos }; + const { findInStrings = false, findInComments = false, providePrefixAndSuffixTextForRename = true } = options || {}; const locations = this.languageService.findRenameLocations( fileName, position, - options.findInStrings ?? false, - options.findInComments ?? false, - options.providePrefixAndSuffixTextForRename); + findInStrings, + findInComments, + providePrefixAndSuffixTextForRename, + ); if (!locations) { this.raiseError(`baselineRename failed. Could not rename at the provided position.`); } - const renamesByFile = ts.group(locations, l => l.fileName); - const baselineContent = renamesByFile.map(renames => { - const { fileName } = renames[0]; - const sortedRenames = ts.sort(renames, (a, b) => b.textSpan.start - a.textSpan.start); - let baselineFileContent = this.getFileContent(fileName); - for (const { textSpan } of sortedRenames) { - const isOriginalSpan = fileName === this.activeFile.fileName && ts.textSpanIntersectsWithPosition(textSpan, position); - baselineFileContent = - baselineFileContent.slice(0, textSpan.start) + - (isOriginalSpan ? "[|RENAME|]" : "RENAME") + - baselineFileContent.slice(textSpan.start + textSpan.length); - } - return `/*====== ${fileName} ======*/\n\n${baselineFileContent}`; - }).join("\n\n") + "\n"; + const renameOptions = options ? + (options.findInStrings !== undefined ? `// @findInStrings: ${findInStrings}\n` : "") + + (options.findInComments !== undefined ? `// @findInComments: ${findInComments}\n` : "") + + (options.providePrefixAndSuffixTextForRename !== undefined ? `// @providePrefixAndSuffixTextForRename: ${providePrefixAndSuffixTextForRename}\n` : "") : + ""; - Harness.Baseline.runBaseline(this.getBaselineFileNameForContainingTestFile(), baselineContent); + return renameOptions + (renameOptions ? "\n" : "") + this.getBaselineForDocumentSpansWithFileContents( + locations, + { + markerInfo: { markerOrRange, markerName: "/*RENAME*/" }, + endMarker: "RENAME|]", + startMarkerPrefix: span => span.prefixText ? `/*START PREFIX*/${span.prefixText}` : "", + endMarkerSuffix: span => span.suffixText ? `${span.suffixText}/*END SUFFIX*/` : "", + ignoredDocumentSpanProperties: ["prefixText", "suffixText"], + } + ); } public verifyQuickInfoExists(negative: boolean) { @@ -2318,6 +2539,10 @@ export class TestState { this.replace(startPos, endPos - startPos, ""); } + public caretPosition(): Marker { + return { fileName: this.activeFile.fileName, position: this.currentCaretPosition }; + } + public deleteCharBehindMarker(count = 1) { let offset = this.currentCaretPosition; const ch = ""; @@ -2534,145 +2759,6 @@ export class TestState { this.goToPosition(pos); } - public goToTypeDefinition(definitionIndex: number) { - const definitions = this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition)!; - if (!definitions || !definitions.length) { - this.raiseError("goToTypeDefinition failed - expected to find at least one definition location but got 0"); - } - - if (definitionIndex >= definitions.length) { - this.raiseError(`goToTypeDefinition failed - definitionIndex value (${definitionIndex}) exceeds definition list size (${definitions.length})`); - } - - const definition = definitions[definitionIndex]; - this.openFile(definition.fileName); - this.currentCaretPosition = definition.textSpan.start; - } - - public verifyTypeDefinitionsCount(negative: boolean, expectedCount: number) { - const assertFn = negative ? assert.notEqual : assert.equal; - - const definitions = this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); - const actualCount = definitions && definitions.length || 0; - - assertFn(actualCount, expectedCount, this.messageAtLastKnownMarker("Type definitions Count")); - } - - public verifyImplementationListIsEmpty(negative: boolean) { - const implementations = this.languageService.getImplementationAtPosition(this.activeFile.fileName, this.currentCaretPosition); - - if (negative) { - assert.isTrue(implementations && implementations.length > 0, "Expected at least one implementation but got 0"); - } - else { - assert.isUndefined(implementations, "Expected implementation list to be empty but implementations returned"); - } - } - - public verifyGoToDefinitionName(expectedName: string, expectedContainerName: string) { - const definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition); - const actualDefinitionName = definitions && definitions.length ? definitions[0].name : ""; - const actualDefinitionContainerName = definitions && definitions.length ? definitions[0].containerName : ""; - assert.equal(actualDefinitionName, expectedName, this.messageAtLastKnownMarker("Definition Info Name")); - assert.equal(actualDefinitionContainerName, expectedContainerName, this.messageAtLastKnownMarker("Definition Info Container Name")); - } - - public goToImplementation() { - const implementations = this.languageService.getImplementationAtPosition(this.activeFile.fileName, this.currentCaretPosition)!; - if (!implementations || !implementations.length) { - this.raiseError("goToImplementation failed - expected to find at least one implementation location but got 0"); - } - if (implementations.length > 1) { - this.raiseError(`goToImplementation failed - more than 1 implementation returned (${implementations.length})`); - } - - const implementation = implementations[0]; - this.openFile(implementation.fileName); - this.currentCaretPosition = implementation.textSpan.start; - } - - public verifyRangesInImplementationList(markerName: string) { - this.goToMarker(markerName); - const implementations: readonly ImplementationLocationInformation[] = this.languageService.getImplementationAtPosition(this.activeFile.fileName, this.currentCaretPosition)!; - if (!implementations || !implementations.length) { - this.raiseError("verifyRangesInImplementationList failed - expected to find at least one implementation location but got 0"); - } - - const duplicate = findDuplicatedElement(implementations, ts.documentSpansEqual); - if (duplicate) { - const { textSpan, fileName } = duplicate; - this.raiseError(`Duplicate implementations returned for range (${textSpan.start}, ${ts.textSpanEnd(textSpan)}) in ${fileName}`); - } - - const ranges = this.getRanges(); - - if (!ranges || !ranges.length) { - this.raiseError("verifyRangesInImplementationList failed - expected to find at least one range in test source"); - } - - const unsatisfiedRanges: Range[] = []; - - const delayedErrors: string[] = []; - for (const range of ranges) { - const length = range.end - range.pos; - const matchingImpl = ts.find(implementations, impl => - range.fileName === impl.fileName && range.pos === impl.textSpan.start && length === impl.textSpan.length); - if (matchingImpl) { - if (range.marker && range.marker.data) { - const expected = range.marker.data as { displayParts?: ts.SymbolDisplayPart[], parts: string[], kind?: string }; - if (expected.displayParts) { - if (!ts.arrayIsEqualTo(expected.displayParts, matchingImpl.displayParts, displayPartIsEqualTo)) { - delayedErrors.push(`Mismatched display parts: expected ${JSON.stringify(expected.displayParts)}, actual ${JSON.stringify(matchingImpl.displayParts)}`); - } - } - else if (expected.parts) { - const actualParts = matchingImpl.displayParts.map(p => p.text); - if (!ts.arrayIsEqualTo(expected.parts, actualParts)) { - delayedErrors.push(`Mismatched non-tagged display parts: expected ${JSON.stringify(expected.parts)}, actual ${JSON.stringify(actualParts)}`); - } - } - if (expected.kind !== undefined) { - if (expected.kind !== matchingImpl.kind) { - delayedErrors.push(`Mismatched kind: expected ${JSON.stringify(expected.kind)}, actual ${JSON.stringify(matchingImpl.kind)}`); - } - } - } - - matchingImpl.matched = true; - } - else { - unsatisfiedRanges.push(range); - } - } - if (delayedErrors.length) { - this.raiseError(delayedErrors.join("\n")); - } - - const unmatchedImplementations = implementations.filter(impl => !impl.matched); - if (unmatchedImplementations.length || unsatisfiedRanges.length) { - let error = "Not all ranges or implementations are satisfied"; - if (unsatisfiedRanges.length) { - error += "\nUnsatisfied ranges:"; - for (const range of unsatisfiedRanges) { - error += `\n (${range.pos}, ${range.end}) in ${range.fileName}: ${this.rangeText(range)}`; - } - } - - if (unmatchedImplementations.length) { - error += "\nUnmatched implementations:"; - for (const impl of unmatchedImplementations) { - const end = impl.textSpan.start + impl.textSpan.length; - error += `\n (${impl.textSpan.start}, ${end}) in ${impl.fileName}: ${this.getFileContent(impl.fileName).slice(impl.textSpan.start, end)}`; - } - } - this.raiseError(error); - } - - function displayPartIsEqualTo(a: ts.SymbolDisplayPart, b: ts.SymbolDisplayPart): boolean { - return a.kind === b.kind && a.text === b.text; - } - } - public getMarkers(): Marker[] { // Return a copy of the list return this.testData.markers.slice(0); @@ -3556,127 +3642,24 @@ export class TestState { } } - private getOccurrencesAtCurrentPosition() { - return ts.flatMap( - this.languageService.getDocumentHighlights(this.activeFile.fileName, this.currentCaretPosition, [this.activeFile.fileName]), - entry => entry.highlightSpans.map(highlightSpan => ({ - fileName: entry.fileName, - textSpan: highlightSpan.textSpan, - isWriteAccess: highlightSpan.kind === ts.HighlightSpanKind.writtenReference, - ...highlightSpan.isInString && { isInString: true }, - ...highlightSpan.contextSpan && { contextSpan: highlightSpan.contextSpan } - })) - ); - } - - public verifyOccurrencesAtPositionListContains(fileName: string, start: number, end: number, isWriteAccess?: boolean) { - const occurrences = this.getOccurrencesAtCurrentPosition(); - - if (!occurrences || occurrences.length === 0) { - return this.raiseError("verifyOccurrencesAtPositionListContains failed - found 0 references, expected at least one."); - } - - for (const occurrence of occurrences) { - if (occurrence && occurrence.fileName === fileName && occurrence.textSpan.start === start && ts.textSpanEnd(occurrence.textSpan) === end) { - if (typeof isWriteAccess !== "undefined" && occurrence.isWriteAccess !== isWriteAccess) { - this.raiseError(`verifyOccurrencesAtPositionListContains failed - item isWriteAccess value does not match, actual: ${occurrence.isWriteAccess}, expected: ${isWriteAccess}.`); - } - return; - } - } - - const missingItem = { fileName, start, end, isWriteAccess }; - this.raiseError(`verifyOccurrencesAtPositionListContains failed - could not find the item: ${stringify(missingItem)} in the returned list: (${stringify(occurrences)})`); - } - - public verifyOccurrencesAtPositionListCount(expectedCount: number) { - const occurrences = this.getOccurrencesAtCurrentPosition(); - const actualCount = occurrences ? occurrences.length : 0; - if (expectedCount !== actualCount) { - this.raiseError(`verifyOccurrencesAtPositionListCount failed - actual: ${actualCount}, expected:${expectedCount}`); - } - } - private getDocumentHighlightsAtCurrentPosition(fileNamesToSearch: readonly string[]) { const filesToSearch = fileNamesToSearch.map(name => ts.combinePaths(this.basePath, name)); return this.languageService.getDocumentHighlights(this.activeFile.fileName, this.currentCaretPosition, filesToSearch); } - public verifyRangesAreOccurrences(isWriteAccess?: boolean, ranges?: Range[]) { - ranges = ranges || this.getRanges(); - assert(ranges.length); - for (const r of ranges) { - this.goToRangeStart(r); - this.verifyOccurrencesAtPositionListCount(ranges.length); - for (const range of ranges) { - this.verifyOccurrencesAtPositionListContains(range.fileName, range.pos, range.end, isWriteAccess); - } - } - } - - public verifyRangesWithSameTextAreRenameLocations(...texts: string[]) { - if (texts.length) { - texts.forEach(text => this.verifyRangesAreRenameLocations(this.rangesByText().get(text))); - } - else { - this.rangesByText().forEach(ranges => this.verifyRangesAreRenameLocations(ranges)); - } - } + private baselineGetDocumentHighlights(markerOrRange: MarkerOrNameOrRange, options: FourSlashInterface.VerifyDocumentHighlightsOptions | undefined) { + this.goToMarkerOrNameOrRange(markerOrRange); + const highlights = this.getDocumentHighlightsAtCurrentPosition(ts.map(options?.filesToSearch, ts.normalizePath) || [this.activeFile.fileName]); - public verifyRangesWithSameTextAreDocumentHighlights() { - this.rangesByText().forEach(ranges => this.verifyRangesAreDocumentHighlights(ranges, /*options*/ undefined)); - } - - public verifyDocumentHighlightsOf(startRange: Range, ranges: Range[], options: FourSlashInterface.VerifyDocumentHighlightsOptions | undefined) { - const fileNames = options && options.filesToSearch || unique(ranges, range => range.fileName); - this.goToRangeStart(startRange); - this.verifyDocumentHighlights(ranges, fileNames); - } - - public verifyRangesAreDocumentHighlights(ranges: Range[] | undefined, options: FourSlashInterface.VerifyDocumentHighlightsOptions | undefined) { - ranges = ranges || this.getRanges(); - assert(ranges.length); - const fileNames = options && options.filesToSearch || unique(ranges, range => range.fileName); - for (const range of ranges) { - this.goToRangeStart(range); - this.verifyDocumentHighlights(ranges, fileNames); - } - } - - public verifyNoDocumentHighlights(startRange: Range) { - this.goToRangeStart(startRange); - const documentHighlights = this.getDocumentHighlightsAtCurrentPosition([this.activeFile.fileName]); - const numHighlights = ts.length(documentHighlights); - if (numHighlights > 0) { - this.raiseError(`verifyNoDocumentHighlights failed - unexpectedly got ${numHighlights} highlights`); - } - } - - private verifyDocumentHighlights(expectedRanges: Range[], fileNames: readonly string[] = [this.activeFile.fileName]) { - fileNames = ts.map(fileNames, ts.normalizePath); - const documentHighlights = this.getDocumentHighlightsAtCurrentPosition(fileNames) || []; - - for (const dh of documentHighlights) { - if (fileNames.indexOf(dh.fileName) === -1) { - this.raiseError(`verifyDocumentHighlights failed - got highlights in unexpected file name ${dh.fileName}`); - } - } - - for (const fileName of fileNames) { - const expectedRangesInFile = expectedRanges.filter(r => ts.normalizePath(r.fileName) === fileName); - const highlights = ts.find(documentHighlights, dh => dh.fileName === fileName); - const spansInFile = highlights ? highlights.highlightSpans.sort((s1, s2) => s1.textSpan.start - s2.textSpan.start) : []; - - if (expectedRangesInFile.length !== spansInFile.length) { - this.raiseError(`verifyDocumentHighlights failed - In ${fileName}, expected ${expectedRangesInFile.length} highlights, got ${spansInFile.length}`); - } - - ts.zipWith(expectedRangesInFile, spansInFile, (expectedRange, span) => { - if (span.textSpan.start !== expectedRange.pos || ts.textSpanEnd(span.textSpan) !== expectedRange.end) { - this.raiseError(`verifyDocumentHighlights failed - span does not match, actual: ${stringify(span.textSpan)}, expected: ${expectedRange.pos}--${expectedRange.end}`); - } - }); - } + // Write input files + const filesToSearch = options ? "// filesToSearch:\n" + + options.filesToSearch.map(f => "// " + f).join("\n") + "\n\n" : + ""; + const baselineContent = this.getBaselineForGroupedDocumentSpansWithFileContents( + highlights?.map(h => h.highlightSpans.map(s => s.fileName ? s as ts.DocumentSpan : { ...s, fileName: h.fileName })) || ts.emptyArray, + { markerInfo: { markerOrRange, markerName: "/*HIGHLIGHTS*/" } }, + ); + return filesToSearch + baselineContent; } public verifyCodeFixAvailable(negative: boolean, expected: FourSlashInterface.VerifyCodeFixAvailableOptions[] | string | undefined): void { @@ -4066,12 +4049,6 @@ export class TestState { Harness.Baseline.runBaseline(baselineFile, text); } - private assertTextSpanEqualsRange(span: ts.TextSpan, range: Range, message?: string) { - if (!textSpanEqualsRange(span, range)) { - this.raiseError(`${prefixMessage(message)}Expected to find TextSpan ${JSON.stringify({ start: range.pos, length: range.end - range.pos })} but got ${JSON.stringify(span)} instead.`); - } - } - private getLineContent(index: number) { const text = this.getFileContent(this.activeFile.fileName); const pos = this.languageServiceAdapterHost.lineAndCharacterToPosition(this.activeFile.fileName, { line: index, character: 0 }); @@ -4254,14 +4231,6 @@ export class TestState { } } -function prefixMessage(message: string | undefined) { - return message ? `${message} - ` : ""; -} - -function textSpanEqualsRange(span: ts.TextSpan, range: Range) { - return span.start === range.pos && span.length === range.end - range.pos; -} - function updateTextRangeForTextChanges({ pos, end }: ts.TextRange, textChanges: readonly ts.TextChange[]): ts.TextRange { forEachTextChange(textChanges, change => { const update = (p: number): number => updatePosition(p, change.span.start, ts.textSpanEnd(change.span), change.newText); @@ -4821,16 +4790,6 @@ function stripWhitespace(s: string): string { return s.replace(/\s/g, ""); } -function findDuplicatedElement(a: readonly T[], equal: (a: T, b: T) => boolean): T | undefined { - for (let i = 0; i < a.length; i++) { - for (let j = i + 1; j < a.length; j++) { - if (equal(a[i], a[j])) { - return a[i]; - } - } - } -} - function displayExpectedAndActualString(expected: string, actual: string, quoted = false) { const expectMsg = "\x1b[1mExpected\x1b[0m\x1b[31m"; const actualMsg = "\x1b[1mActual\x1b[0m\x1b[31m"; diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index 8a9fed916c7c6..ae798be5132bd 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -97,10 +97,6 @@ export class GoTo { this.state.goToEOF(); } - public implementation() { - this.state.goToImplementation(); - } - public position(positionOrLineAndCharacter: number | ts.LineAndCharacter, fileNameOrIndex?: string | number): void { if (fileNameOrIndex !== undefined) { this.file(fileNameOrIndex); @@ -173,14 +169,6 @@ export class VerifyNegatable { this.state.verifyQuickInfoExists(this.negative); } - public typeDefinitionCountIs(expectedCount: number) { - this.state.verifyTypeDefinitionsCount(this.negative, expectedCount); - } - - public implementationListIsEmpty() { - this.state.verifyImplementationListIsEmpty(this.negative); - } - public isValidBraceCompletionAtPosition(openingBrace: string) { this.state.verifyBraceCompletionAtPosition(this.negative, openingBrace); } @@ -318,68 +306,88 @@ export class Verify extends VerifyNegatable { this.state.verifyFormatDocumentChangesNothing(); } - public goToDefinitionIs(endMarkers: ArrayOrSingle) { - this.state.verifyGoToDefinitionIs(endMarkers); + public verifyGetEmitOutputForCurrentFile(expected: string): void { + this.state.verifyGetEmitOutputForCurrentFile(expected); + } + + public verifyGetEmitOutputContentsForCurrentFile(expected: ts.OutputFile[]): void { + this.state.verifyGetEmitOutputContentsForCurrentFile(expected); + } + + public symbolAtLocation(startRange: FourSlash.Range, ...declarationRanges: FourSlash.Range[]) { + this.state.verifySymbolAtLocation(startRange, declarationRanges); } - public goToDefinition(startMarkerName: ArrayOrSingle, endMarkerName: ArrayOrSingle, range?: FourSlash.Range): void; - public goToDefinition(startsAndEnds: [ArrayOrSingle, ArrayOrSingle][] | { [startMarkerName: string]: ArrayOrSingle }): void; - public goToDefinition(arg0: any, endMarkerName?: ArrayOrSingle) { - this.state.verifyGoToDefinition(arg0, endMarkerName); + public typeOfSymbolAtLocation(range: FourSlash.Range, symbol: ts.Symbol, expected: string) { + this.state.verifyTypeOfSymbolAtLocation(range, symbol, expected); } - public goToType(startMarkerName: ArrayOrSingle, endMarkerName: ArrayOrSingle): void; - public goToType(startsAndEnds: [ArrayOrSingle, ArrayOrSingle][] | { [startMarkerName: string]: ArrayOrSingle }): void; - public goToType(arg0: any, endMarkerName?: ArrayOrSingle) { - this.state.verifyGoToType(arg0, endMarkerName); + public typeAtLocation(range: FourSlash.Range, expected: string) { + this.state.verifyTypeAtLocation(range, expected); } - public goToSourceDefinition(startMarkerNames: ArrayOrSingle, end: { file: string } | ArrayOrSingle) { - this.state.verifyGoToSourceDefinition(startMarkerNames, end); + public baselineCommands(...commands: BaselineCommand[]) { + this.state.verifyBaselineCommands(...commands); } - public goToDefinitionForMarkers(...markerNames: string[]) { - this.state.verifyGoToDefinitionForMarkers(markerNames); + public baselineFindAllReferences(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "findAllReferences", markerOrRange }); } - public goToDefinitionName(name: string, containerName: string) { - this.state.verifyGoToDefinitionName(name, containerName); + public baselineFindAllReferencesAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "findAllReferences", rangeText }); } - public verifyGetEmitOutputForCurrentFile(expected: string): void { - this.state.verifyGetEmitOutputForCurrentFile(expected); + public baselineGetFileReferences(...fileName: string[]) { + this.state.verifyBaselineCommands({ type: "getFileReferences", fileName }); } - public verifyGetEmitOutputContentsForCurrentFile(expected: ts.OutputFile[]): void { - this.state.verifyGetEmitOutputContentsForCurrentFile(expected); + public baselineGoToDefinition(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "goToDefinition", markerOrRange }); } - public symbolAtLocation(startRange: FourSlash.Range, ...declarationRanges: FourSlash.Range[]) { - this.state.verifySymbolAtLocation(startRange, declarationRanges); + public baselineGoToDefinitionAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "goToDefinition", rangeText }); } - public typeOfSymbolAtLocation(range: FourSlash.Range, symbol: ts.Symbol, expected: string) { - this.state.verifyTypeOfSymbolAtLocation(range, symbol, expected); + public baselineGetDefinitionAtPosition(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "getDefinitionAtPosition", markerOrRange }); } - public typeAtLocation(range: FourSlash.Range, expected: string) { - this.state.verifyTypeAtLocation(range, expected); + public baselineGetDefinitionAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "getDefinitionAtPosition", rangeText }); } - public baselineFindAllReferences(...markerNames: string[]) { - this.state.verifyBaselineFindAllReferences(...markerNames); + public baselineGoToSourceDefinition(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "goToSourceDefinition", markerOrRange }); } - public baselineFindAllReferencesMulti(seq: number, ...markerNames: string[]) { - this.state.verifyBaselineFindAllReferencesMulti(seq, ...markerNames); + public baselineGoToSourceDefinitionAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "goToSourceDefinition", rangeText }); } - public baselineGetFileReferences(fileName: string) { - this.state.verifyBaselineGetFileReferences(fileName); + public baselineGoToType(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "goToType", markerOrRange }); } - public findReferencesDefinitionDisplayPartsAtCaretAre(expected: ts.SymbolDisplayPart[]) { - this.state.verifyDisplayPartsOfReferencedSymbol(expected); + public baselineGoToTypeAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "goToType", rangeText }); + } + + public baselineGoToImplementation(...markerOrRange: FourSlash.MarkerOrNameOrRange[]) { + this.state.verifyBaselineCommands({ type: "goToImplementation", markerOrRange }); + } + + public baselineGoToImplementationAtRangesWithText(...rangeText: string[]) { + this.state.verifyBaselineCommands({ type: "goToImplementation", rangeText }); + } + + public baselineDocumentHighlights(markerOrRange?: ArrayOrSingle, options?: VerifyDocumentHighlightsOptions) { + this.state.verifyBaselineCommands({ type: "documentHighlights", markerOrRange, options }); + } + + public baselineDocumentHighlightsAtRangesWithText(rangeText?: ArrayOrSingle, options?: VerifyDocumentHighlightsOptions) { + this.state.verifyBaselineCommands({ type: "documentHighlights", rangeText, options }); } public noErrors() { @@ -516,42 +524,6 @@ export class Verify extends VerifyNegatable { this.state.verifyNavigateTo(options); } - public occurrencesAtPositionContains(range: FourSlash.Range, isWriteAccess?: boolean) { - this.state.verifyOccurrencesAtPositionListContains(range.fileName, range.pos, range.end, isWriteAccess); - } - - public occurrencesAtPositionCount(expectedCount: number) { - this.state.verifyOccurrencesAtPositionListCount(expectedCount); - } - - public rangesAreOccurrences(isWriteAccess?: boolean, ranges?: FourSlash.Range[]) { - this.state.verifyRangesAreOccurrences(isWriteAccess, ranges); - } - - public rangesWithSameTextAreRenameLocations(...texts: string[]) { - this.state.verifyRangesWithSameTextAreRenameLocations(...texts); - } - - public rangesAreRenameLocations(options?: FourSlash.Range[] | { findInStrings?: boolean, findInComments?: boolean, ranges?: FourSlash.Range[], providePrefixAndSuffixTextForRename?: boolean }) { - this.state.verifyRangesAreRenameLocations(options); - } - - public rangesAreDocumentHighlights(ranges?: FourSlash.Range[], options?: VerifyDocumentHighlightsOptions) { - this.state.verifyRangesAreDocumentHighlights(ranges, options); - } - - public rangesWithSameTextAreDocumentHighlights() { - this.state.verifyRangesWithSameTextAreDocumentHighlights(); - } - - public documentHighlightsOf(startRange: FourSlash.Range, ranges: FourSlash.Range[], options?: VerifyDocumentHighlightsOptions) { - this.state.verifyDocumentHighlightsOf(startRange, ranges, options); - } - - public noDocumentHighlights(startRange: FourSlash.Range) { - this.state.verifyNoDocumentHighlights(startRange); - } - /** * This method *requires* a contiguous, complete, and ordered stream of classifications for a file. */ @@ -593,12 +565,12 @@ export class Verify extends VerifyNegatable { this.state.verifyRenameInfoFailed(message, preferences); } - public renameLocations(startRanges: ArrayOrSingle, options: RenameLocationsOptions) { - this.state.verifyRenameLocations(startRanges, options); + public baselineRename(markerOrRange?: ArrayOrSingle, options?: RenameOptions) { + this.state.verifyBaselineCommands({ type: "findRenameLocations", markerOrRange, options }); } - public baselineRename(marker: string, options: RenameOptions) { - this.state.baselineRename(marker, options); + public baselineRenameAtRangesWithText(rangeText?: ArrayOrSingle, options?: RenameOptions) { + this.state.verifyBaselineCommands({ type: "findRenameLocations", rangeText, options }); } public verifyQuickInfoDisplayParts(kind: string, kindModifiers: string, textSpan: FourSlash.TextSpan, @@ -622,10 +594,6 @@ export class Verify extends VerifyNegatable { this.state.verifyProjectInfo(expected); } - public allRangesAppearInImplementationList(markerName: string) { - this.state.verifyRangesInImplementationList(markerName); - } - public getEditsForFileRename(options: GetEditsForFileRenameOptions) { this.state.getEditsForFileRename(options); } @@ -650,6 +618,9 @@ export class Verify extends VerifyNegatable { export class Edit { constructor(private state: FourSlash.TestState) { } + public caretPosition() { + return this.state.caretPosition(); + } public backspace(count?: number) { this.state.deleteCharBehindMarker(count); } @@ -1855,7 +1826,7 @@ export interface VerifyCompletionListContainsOptions extends ts.UserPreferences } export interface VerifyDocumentHighlightsOptions { - filesToSearch?: readonly string[]; + filesToSearch: readonly string[]; } export type NewFileContent = string | { readonly [filename: string]: string }; @@ -1936,3 +1907,25 @@ export interface RenameOptions { readonly findInComments?: boolean; readonly providePrefixAndSuffixTextForRename?: boolean; } +export type BaselineCommandWithMarkerOrRange = { + type: "findAllReferences" | "goToDefinition" | "getDefinitionAtPosition" | "goToSourceDefinition" | "goToType" | "goToImplementation"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; +} | { + type: "findRenameLocations"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; + options?: RenameOptions; +} | { + type: "documentHighlights"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; + options?: VerifyDocumentHighlightsOptions; +}; +export type BaselineCommand = BaselineCommandWithMarkerOrRange | { + type: "getFileReferences"; + fileName: ArrayOrSingle; +} | { + type: "customWork"; + work: () => string | undefined; +}; \ No newline at end of file diff --git a/tests/baselines/reference/ambientShorthandFindAllRefs.baseline.jsonc b/tests/baselines/reference/ambientShorthandFindAllRefs.baseline.jsonc index df2fa77a88d88..d877f07212f5a 100644 --- a/tests/baselines/reference/ambientShorthandFindAllRefs.baseline.jsonc +++ b/tests/baselines/reference/ambientShorthandFindAllRefs.baseline.jsonc @@ -1,167 +1,129 @@ +// === findAllReferences === // === /tests/cases/fourslash/user.ts === -// import {/*FIND ALL REFS*/[|x|]} from "jquery"; +// <|import {/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]} from "jquery";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/user.ts", - "kind": "alias", - "name": "(alias) module \"jquery\"\nimport x", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/user.ts", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/user.ts === + // <|import {/*FIND ALL REFS*/[|x|]} from "jquery";|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"jquery\"\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/user2.ts === -// import {/*FIND ALL REFS*/[|x|]} from "jquery"; +// <|import {/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]} from "jquery";|> + + // === Definitions === + // === /tests/cases/fourslash/user2.ts === + // <|import {/*FIND ALL REFS*/[|x|]} from "jquery";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/user2.ts", - "kind": "alias", - "name": "(alias) module \"jquery\"\nimport x", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/user2.ts", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"jquery\"\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/ambientShorthandGotoDefinition.baseline.jsonc b/tests/baselines/reference/ambientShorthandGotoDefinition.baseline.jsonc new file mode 100644 index 0000000000000..fee2aaf90f33e --- /dev/null +++ b/tests/baselines/reference/ambientShorthandGotoDefinition.baseline.jsonc @@ -0,0 +1,170 @@ +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// import * as baz from "jquery"; +// import bang = require("jquery"); +// [|foo|]/*GOTO DEF*/(bar, baz, bang); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import /*GOTO DEF*/[|foo|], {bar} from "jquery"; +// import * as baz from "jquery"; +// import bang = require("jquery"); +// foo(bar, baz, bang); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// import * as baz from "jquery"; +// import bang = require("jquery"); +// foo([|bar|]/*GOTO DEF*/, baz, bang); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// <|import * as [|baz|] from "jquery";|> +// import bang = require("jquery"); +// foo(bar, baz/*GOTO DEF*/, bang); + + // === Details === + [ + { + "kind": "alias", + "name": "baz", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// import * as /*GOTO DEF*/[|baz|] from "jquery"; +// import bang = require("jquery"); +// foo(bar, baz, bang); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// import * as baz from "jquery"; +// import bang = require("jquery"); +// foo(bar, baz, [|bang|]/*GOTO DEF*/); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/declarations.d.ts === +// <|declare module [|"jquery"|]|> + +// === /tests/cases/fourslash/user.ts === +// /// +// import foo, {bar} from "jquery"; +// import * as baz from "jquery"; +// import /*GOTO DEF*/[|bang|] = require("jquery"); +// foo(bar, baz, bang); + + // === Details === + [ + { + "kind": "module", + "name": "\"jquery\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/asConstRefsNoErrors1.baseline.jsonc b/tests/baselines/reference/asConstRefsNoErrors1.baseline.jsonc new file mode 100644 index 0000000000000..6b19a2e789e5b --- /dev/null +++ b/tests/baselines/reference/asConstRefsNoErrors1.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/asConstRefsNoErrors1.ts === +// class Tex { +// type = 'Text' as /*GOTO DEF*/const; +// } \ No newline at end of file diff --git a/tests/baselines/reference/asConstRefsNoErrors2.baseline.jsonc b/tests/baselines/reference/asConstRefsNoErrors2.baseline.jsonc new file mode 100644 index 0000000000000..a3975c72b643f --- /dev/null +++ b/tests/baselines/reference/asConstRefsNoErrors2.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/asConstRefsNoErrors2.ts === +// class Tex { +// type = 'Text'; +// } \ No newline at end of file diff --git a/tests/baselines/reference/asConstRefsNoErrors3.baseline.jsonc b/tests/baselines/reference/asConstRefsNoErrors3.baseline.jsonc new file mode 100644 index 0000000000000..e97df2df9bb4b --- /dev/null +++ b/tests/baselines/reference/asConstRefsNoErrors3.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.js === +// class Tex { +// type = (/** @type {/*GOTO DEF*/const} */'Text'); +// } \ No newline at end of file diff --git a/tests/baselines/reference/autoImportProvider_referencesCrash.baseline.jsonc b/tests/baselines/reference/autoImportProvider_referencesCrash.baseline.jsonc index 5ced88d90cbb6..4ec26be1f18a7 100644 --- a/tests/baselines/reference/autoImportProvider_referencesCrash.baseline.jsonc +++ b/tests/baselines/reference/autoImportProvider_referencesCrash.baseline.jsonc @@ -1,47 +1,32 @@ +// === findAllReferences === // === /b/b.ts === // /// // new [|A|]/*FIND ALL REFS*/(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/b/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a/index.ts === + // <|class A {}[||>|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.1.baseline.jsonc b/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.1.baseline.jsonc deleted file mode 100644 index fac647eb0ac2e..0000000000000 --- a/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.1.baseline.jsonc +++ /dev/null @@ -1,116 +0,0 @@ -// === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === -// export class Test{ -// -// constructor(){ -// -// } -// -// public /*FIND ALL REFS*/[|start|](){ -// return this; -// } -// -// public stop(){ -// return this; -// } -// } - -// === /tests/cases/fourslash/findAllRefsOnDefinition.ts === -// import Second = require("./findAllRefsOnDefinition-import"); -// -// var second = new Second.Test() -// second.[|start|](); -// second.stop(); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] \ No newline at end of file diff --git a/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.3.baseline.jsonc b/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.3.baseline.jsonc deleted file mode 100644 index fac647eb0ac2e..0000000000000 --- a/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.3.baseline.jsonc +++ /dev/null @@ -1,116 +0,0 @@ -// === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === -// export class Test{ -// -// constructor(){ -// -// } -// -// public /*FIND ALL REFS*/[|start|](){ -// return this; -// } -// -// public stop(){ -// return this; -// } -// } - -// === /tests/cases/fourslash/findAllRefsOnDefinition.ts === -// import Second = require("./findAllRefsOnDefinition-import"); -// -// var second = new Second.Test() -// second.[|start|](); -// second.stop(); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] \ No newline at end of file diff --git a/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.baseline.jsonc b/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.baseline.jsonc new file mode 100644 index 0000000000000..a6e5caa0d21e1 --- /dev/null +++ b/tests/baselines/reference/cancellationWhenfindingAllRefsOnDefinition.baseline.jsonc @@ -0,0 +1,208 @@ +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === +// export class Test{ +// +// constructor(){ +// +// } +// +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|](){ +// return this; +// }|> +// +// public stop(){ +// return this; +// } +// } + +// === /tests/cases/fourslash/findAllRefsOnDefinition.ts === +// import Second = require("./findAllRefsOnDefinition-import"); +// +// var second = new Second.Test() +// second.[|start|](); +// second.stop(); + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public /*FIND ALL REFS*/[|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } + ] + } + ] + + + +// === customWork === +// cancelled findAllReferences + + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === +// export class Test{ +// +// constructor(){ +// +// } +// +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|](){ +// return this; +// }|> +// +// public stop(){ +// return this; +// } +// } + +// === /tests/cases/fourslash/findAllRefsOnDefinition.ts === +// import Second = require("./findAllRefsOnDefinition-import"); +// +// var second = new Second.Test() +// second.[|start|](); +// second.stop(); + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public /*FIND ALL REFS*/[|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc index e7bebca38f540..0b7b87a955b70 100644 --- a/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc +++ b/tests/baselines/reference/constructorFindAllReferences1.baseline.jsonc @@ -1,63 +1,41 @@ +// === findAllReferences === // === /tests/cases/fourslash/constructorFindAllReferences1.ts === // export class C { -// /*FIND ALL REFS*/public [|constructor|]() { } +// /*FIND ALL REFS*/<|public [|constructor|]() { }|> // public foo() { } // } // // new [|C|]().foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 68 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", - "contextSpan": { - "start": 21, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/constructorFindAllReferences1.ts === + // <|export class [|C|] { + // /*FIND ALL REFS*/public constructor() { } + // public foo() { } + // }|> + // + // new C().foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc index 3555381950dfa..2ef7a065fcf70 100644 --- a/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc +++ b/tests/baselines/reference/constructorFindAllReferences2.baseline.jsonc @@ -1,63 +1,41 @@ +// === findAllReferences === // === /tests/cases/fourslash/constructorFindAllReferences2.ts === // export class C { -// /*FIND ALL REFS*/private [|constructor|]() { } +// /*FIND ALL REFS*/<|private [|constructor|]() { }|> // public foo() { } // } // // new [|C|]().foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 69 - } - }, - "references": [ - { - "textSpan": { - "start": 29, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", - "contextSpan": { - "start": 21, - "length": 25 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/constructorFindAllReferences2.ts === + // <|export class [|C|] { + // /*FIND ALL REFS*/private constructor() { } + // public foo() { } + // }|> + // + // new C().foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc index 79a200e253dce..7327077483c72 100644 --- a/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc +++ b/tests/baselines/reference/constructorFindAllReferences3.baseline.jsonc @@ -1,65 +1,41 @@ +// === findAllReferences === // === /tests/cases/fourslash/constructorFindAllReferences3.ts === // export class C { -// /*FIND ALL REFS*/[|constructor|]() { } +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|]() { }|> // public foo() { } // } // // new [|C|]().foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", - "contextSpan": { - "start": 21, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/constructorFindAllReferences3.ts === + // <|export class [|C|] { + // /*FIND ALL REFS*/constructor() { } + // public foo() { } + // }|> + // + // new C().foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc b/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc index 1d899ba5e84fe..8bf163147f53b 100644 --- a/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc +++ b/tests/baselines/reference/constructorFindAllReferences4.baseline.jsonc @@ -1,63 +1,41 @@ +// === findAllReferences === // === /tests/cases/fourslash/constructorFindAllReferences4.ts === // export class C { -// /*FIND ALL REFS*/protected [|constructor|]() { } +// /*FIND ALL REFS*/<|protected [|constructor|]() { }|> // public foo() { } // } // // new [|C|]().foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 71 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", - "contextSpan": { - "start": 21, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/constructorFindAllReferences4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/constructorFindAllReferences4.ts === + // <|export class [|C|] { + // /*FIND ALL REFS*/protected constructor() { } + // public foo() { } + // }|> + // + // new C().foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapGoToDefinition.baseline.jsonc b/tests/baselines/reference/declarationMapGoToDefinition.baseline.jsonc new file mode 100644 index 0000000000000..2afa99e7a17c2 --- /dev/null +++ b/tests/baselines/reference/declarationMapGoToDefinition.baseline.jsonc @@ -0,0 +1,31 @@ +// === goToDefinition === +// === /tests/cases/fourslash/server/index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): void {} +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /tests/cases/fourslash/server/mymodule.ts === +// import * as mod from "./indexdef"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsEnableMapping_NoInline.baseline.jsonc b/tests/baselines/reference/declarationMapsEnableMapping_NoInline.baseline.jsonc new file mode 100644 index 0000000000000..35b20e967b0f5 --- /dev/null +++ b/tests/baselines/reference/declarationMapsEnableMapping_NoInline.baseline.jsonc @@ -0,0 +1,131 @@ +// === goToImplementation === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO IMPL*/methodName({member: 12}); + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] + + + +// === goToType === +// === /index.ts === +// export class Foo { +// member: string; +// methodName(propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface [|SomeType|] { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO TYPE*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === getDefinitionAtPosition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF POS*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsEnableMapping_NoInlineSources.baseline.jsonc b/tests/baselines/reference/declarationMapsEnableMapping_NoInlineSources.baseline.jsonc new file mode 100644 index 0000000000000..35b20e967b0f5 --- /dev/null +++ b/tests/baselines/reference/declarationMapsEnableMapping_NoInlineSources.baseline.jsonc @@ -0,0 +1,131 @@ +// === goToImplementation === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO IMPL*/methodName({member: 12}); + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] + + + +// === goToType === +// === /index.ts === +// export class Foo { +// member: string; +// methodName(propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface [|SomeType|] { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO TYPE*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === getDefinitionAtPosition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF POS*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping.baseline.jsonc b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping.baseline.jsonc new file mode 100644 index 0000000000000..35b20e967b0f5 --- /dev/null +++ b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping.baseline.jsonc @@ -0,0 +1,131 @@ +// === goToImplementation === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO IMPL*/methodName({member: 12}); + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] + + + +// === goToType === +// === /index.ts === +// export class Foo { +// member: string; +// methodName(propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface [|SomeType|] { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO TYPE*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === getDefinitionAtPosition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF POS*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping2.baseline.jsonc b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping2.baseline.jsonc new file mode 100644 index 0000000000000..35b20e967b0f5 --- /dev/null +++ b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping2.baseline.jsonc @@ -0,0 +1,131 @@ +// === goToImplementation === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO IMPL*/methodName({member: 12}); + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] + + + +// === goToType === +// === /index.ts === +// export class Foo { +// member: string; +// methodName(propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface [|SomeType|] { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO TYPE*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === getDefinitionAtPosition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF POS*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping3.baseline.jsonc b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping3.baseline.jsonc new file mode 100644 index 0000000000000..35b20e967b0f5 --- /dev/null +++ b/tests/baselines/reference/declarationMapsGeneratedMapsEnableMapping3.baseline.jsonc @@ -0,0 +1,131 @@ +// === goToImplementation === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO IMPL*/methodName({member: 12}); + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] + + + +// === goToType === +// === /index.ts === +// export class Foo { +// member: string; +// methodName(propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface [|SomeType|] { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO TYPE*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === getDefinitionAtPosition === +// === /index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): SomeType { return propName; } +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /mymodule.ts === +// import * as mod from "/dist/index"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF POS*/methodName({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsGoToDefinitionRelativeSourceRoot.baseline.jsonc b/tests/baselines/reference/declarationMapsGoToDefinitionRelativeSourceRoot.baseline.jsonc new file mode 100644 index 0000000000000..f13d6674b39f1 --- /dev/null +++ b/tests/baselines/reference/declarationMapsGoToDefinitionRelativeSourceRoot.baseline.jsonc @@ -0,0 +1,31 @@ +// === goToDefinition === +// === /tests/cases/fourslash/server/index.ts === +// export class Foo { +// member: string; +// [|methodName|](propName: SomeType): void {} +// otherMethod() { +// if (Math.random() > 0.5) { +// return {x: 42}; +// } +// return {y: "yes"}; +// } +// } +// +// export interface SomeType { +// member: number; +// } + +// === /tests/cases/fourslash/server/mymodule.ts === +// import * as mod from "./out/indexdef"; +// const instance = new mod.Foo(); +// instance./*GOTO DEF*/[|methodName|]({member: 12}); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsGoToDefinitionSameNameDifferentDirectory.baseline.jsonc b/tests/baselines/reference/declarationMapsGoToDefinitionSameNameDifferentDirectory.baseline.jsonc new file mode 100644 index 0000000000000..36ca3cb7ade8b --- /dev/null +++ b/tests/baselines/reference/declarationMapsGoToDefinitionSameNameDifferentDirectory.baseline.jsonc @@ -0,0 +1,71 @@ +// === goToDefinition === +// === /tests/cases/fourslash/server/BaseClass/Source.ts === +// class [|Control|]{ +// constructor(){ +// return; +// } +// /** this is a super var */ +// public myVar: boolean | 'yeah' = true; +// } + +// === /tests/cases/fourslash/server/buttonClass/Source.ts === +// // I cannot F12 navigate to Control +// // vvvvvvv +// class Button extends /*GOTO DEF*/[|Control|] { +// public myFunction() { +// // I cannot F12 navigate to myVar +// // vvvvv +// if (typeof this.myVar === 'boolean') { +// this.myVar; +// } else { +// this.myVar.toLocaleUpperCase(); +// } +// } +// } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/server/BaseClass/Source.ts === +// class Control{ +// constructor(){ +// return; +// } +// /** this is a super var */ +// public [|myVar|]: boolean | 'yeah' = true; +// } + +// === /tests/cases/fourslash/server/buttonClass/Source.ts === +// // I cannot F12 navigate to Control +// // vvvvvvv +// class Button extends Control { +// public myFunction() { +// // I cannot F12 navigate to myVar +// // vvvvv +// if (typeof this./*GOTO DEF*/[|myVar|] === 'boolean') { +// this.myVar; +// } else { +// this.myVar.toLocaleUpperCase(); +// } +// } +// } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/declarationMapsOutOfDateMapping.baseline.jsonc b/tests/baselines/reference/declarationMapsOutOfDateMapping.baseline.jsonc new file mode 100644 index 0000000000000..96aba4c3f8b0c --- /dev/null +++ b/tests/baselines/reference/declarationMapsOutOfDateMapping.baseline.jsonc @@ -0,0 +1,18 @@ +// === getDefinitionAtPosition === +// === /node_modules/a/src/index.ts === +// export class [|Foo|] { +// } +// + +// === /index.ts === +// import { Foo/*GOTO DEF POS*/ } from "a"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/definition.baseline.jsonc b/tests/baselines/reference/definition.baseline.jsonc new file mode 100644 index 0000000000000..93ec953bf211b --- /dev/null +++ b/tests/baselines/reference/definition.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// [||]export class Foo {} + +// === /tests/cases/fourslash/b.ts === +// import n = require([|'./a/*GOTO DEF*/'|]); +// var x = new n.Foo(); + + // === Details === + [ + { + "kind": "script", + "name": "./a", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/definition01.baseline.jsonc b/tests/baselines/reference/definition01.baseline.jsonc new file mode 100644 index 0000000000000..75b9b1da26ab5 --- /dev/null +++ b/tests/baselines/reference/definition01.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToDefinition === +// === /tests/cases/fourslash/server/a.ts === +// [||]export class Foo {} + +// === /tests/cases/fourslash/server/b.ts === +// import n = require([|'./a/*GOTO DEF*/'|]); +// var x = new n.Foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/definitionNameOnEnumMember.baseline.jsonc b/tests/baselines/reference/definitionNameOnEnumMember.baseline.jsonc new file mode 100644 index 0000000000000..296549b9b9db9 --- /dev/null +++ b/tests/baselines/reference/definitionNameOnEnumMember.baseline.jsonc @@ -0,0 +1,21 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/definitionNameOnEnumMember.ts === +// enum e { +// firstMember, +// secondMember, +// [|thirdMember|] +// } +// var enumMember = e./*GOTO DEF POS*/thirdMember; + + // === Details === + [ + { + "kind": "enum member", + "name": "thirdMember", + "containerName": "e", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties1.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties1.baseline.jsonc new file mode 100644 index 0000000000000..b056e3ebef532 --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties1.baseline.jsonc @@ -0,0 +1,15 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}doStuff|](): void;|> +// propName: string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// doStuff(): void; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}propName|]: string;|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties2.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties2.baseline.jsonc new file mode 100644 index 0000000000000..6646208587829 --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties2.baseline.jsonc @@ -0,0 +1,15 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// /*HIGHLIGHTS*/<|[|{| kind: "writtenReference" |}doStuff|]() { }|> +// propName: string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// doStuff() { } +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}propName|]: string;|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties3.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties3.baseline.jsonc new file mode 100644 index 0000000000000..c6e13504a1709 --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties3.baseline.jsonc @@ -0,0 +1,49 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}doStuff|](): void;|> +// propName: string; +// } +// +// var v: interface1; +// v.propName; +// v.[|{| kind: "reference" |}doStuff|](); + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// doStuff(): void; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}propName|]: string;|> +// } +// +// var v: interface1; +// v.[|{| kind: "reference" |}propName|]; +// v.doStuff(); + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// doStuff(): void; +// <|[|{| kind: "reference" |}propName|]: string;|> +// } +// +// var v: interface1; +// v./*HIGHLIGHTS*/[|{| kind: "reference" |}propName|]; +// v.doStuff(); + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface interface1 extends interface1 { +// <|[|{| kind: "reference" |}doStuff|](): void;|> +// propName: string; +// } +// +// var v: interface1; +// v.propName; +// v./*HIGHLIGHTS*/[|{| kind: "reference" |}doStuff|](); \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties4.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties4.baseline.jsonc new file mode 100644 index 0000000000000..02ad3ebebb77f --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties4.baseline.jsonc @@ -0,0 +1,49 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// /*HIGHLIGHTS*/<|[|{| kind: "writtenReference" |}doStuff|]() { }|> +// propName: string; +// } +// +// var c: class1; +// c.[|{| kind: "reference" |}doStuff|](); +// c.propName; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// doStuff() { } +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}propName|]: string;|> +// } +// +// var c: class1; +// c.doStuff(); +// c.[|{| kind: "reference" |}propName|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// <|[|{| kind: "writtenReference" |}doStuff|]() { }|> +// propName: string; +// } +// +// var c: class1; +// c./*HIGHLIGHTS*/[|{| kind: "reference" |}doStuff|](); +// c.propName; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class class1 extends class1 { +// doStuff() { } +// <|[|{| kind: "reference" |}propName|]: string;|> +// } +// +// var c: class1; +// c.doStuff(); +// c./*HIGHLIGHTS*/[|{| kind: "reference" |}propName|]; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties5.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties5.baseline.jsonc new file mode 100644 index 0000000000000..e31a1245e5b0e --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties5.baseline.jsonc @@ -0,0 +1,82 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface C extends D { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: number; +// } +// +// interface D extends C { +// <|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: number; +// } +// +// var d: D; +// d.prop1; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface C extends D { +// prop0: string; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// interface D extends C { +// prop0: string; +// <|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// var d: D; +// d.[|{| kind: "reference" |}prop1|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface C extends D { +// <|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: number; +// } +// +// interface D extends C { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: number; +// } +// +// var d: D; +// d.prop1; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface C extends D { +// prop0: string; +// <|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// interface D extends C { +// prop0: string; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// var d: D; +// d.[|{| kind: "reference" |}prop1|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// interface C extends D { +// prop0: string; +// <|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// interface D extends C { +// prop0: string; +// <|[|{| kind: "reference" |}prop1|]: number;|> +// } +// +// var d: D; +// d./*HIGHLIGHTS*/[|{| kind: "reference" |}prop1|]; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtInheritedProperties6.baseline.jsonc b/tests/baselines/reference/documentHighlightAtInheritedProperties6.baseline.jsonc new file mode 100644 index 0000000000000..f91a7134daffe --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtInheritedProperties6.baseline.jsonc @@ -0,0 +1,82 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class C extends D { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: string; +// } +// +// class D extends C { +// prop0: string; +// prop1: string; +// } +// +// var d: D; +// d.prop1; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class C extends D { +// prop0: string; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop1|]: string;|> +// } +// +// class D extends C { +// prop0: string; +// prop1: string; +// } +// +// var d: D; +// d.prop1; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class C extends D { +// prop0: string; +// prop1: string; +// } +// +// class D extends C { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop0|]: string;|> +// prop1: string; +// } +// +// var d: D; +// d.prop1; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class C extends D { +// prop0: string; +// prop1: string; +// } +// +// class D extends C { +// prop0: string; +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}prop1|]: string;|> +// } +// +// var d: D; +// d.[|{| kind: "reference" |}prop1|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class C extends D { +// prop0: string; +// prop1: string; +// } +// +// class D extends C { +// prop0: string; +// <|[|{| kind: "reference" |}prop1|]: string;|> +// } +// +// var d: D; +// d./*HIGHLIGHTS*/[|{| kind: "reference" |}prop1|]; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration1.baseline.jsonc b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration1.baseline.jsonc new file mode 100644 index 0000000000000..de21c1469831d --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration1.baseline.jsonc @@ -0,0 +1,177 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(<|private /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}privateParam|]: number|>, +// public publicParam: string, +// protected protectedParam: boolean) { +// +// let localPrivate = [|{| kind: "reference" |}privateParam|]; +// this.[|{| kind: "writtenReference" |}privateParam|] += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// <|public /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}publicParam|]: string|>, +// protected protectedParam: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = [|{| kind: "reference" |}publicParam|]; +// this.[|{| kind: "writtenReference" |}publicParam|] += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// public publicParam: string, +// <|protected /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}protectedParam|]: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = [|{| kind: "reference" |}protectedParam|]; +// this.[|{| kind: "writtenReference" |}protectedParam|] = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(<|private [|{| kind: "writtenReference" |}privateParam|]: number|>, +// public publicParam: string, +// protected protectedParam: boolean) { +// +// let localPrivate = /*HIGHLIGHTS*/[|{| kind: "reference" |}privateParam|]; +// this.[|{| kind: "writtenReference" |}privateParam|] += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(<|private [|{| kind: "writtenReference" |}privateParam|]: number|>, +// public publicParam: string, +// protected protectedParam: boolean) { +// +// let localPrivate = [|{| kind: "reference" |}privateParam|]; +// this./*HIGHLIGHTS*/[|{| kind: "writtenReference" |}privateParam|] += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// <|public [|{| kind: "writtenReference" |}publicParam|]: string|>, +// protected protectedParam: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = /*HIGHLIGHTS*/[|{| kind: "reference" |}publicParam|]; +// this.[|{| kind: "writtenReference" |}publicParam|] += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// <|public [|{| kind: "writtenReference" |}publicParam|]: string|>, +// protected protectedParam: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = [|{| kind: "reference" |}publicParam|]; +// this./*HIGHLIGHTS*/[|{| kind: "writtenReference" |}publicParam|] += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// public publicParam: string, +// <|protected [|{| kind: "writtenReference" |}protectedParam|]: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = /*HIGHLIGHTS*/[|{| kind: "reference" |}protectedParam|]; +// this.[|{| kind: "writtenReference" |}protectedParam|] = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// constructor(private privateParam: number, +// public publicParam: string, +// <|protected [|{| kind: "writtenReference" |}protectedParam|]: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = [|{| kind: "reference" |}protectedParam|]; +// this./*HIGHLIGHTS*/[|{| kind: "writtenReference" |}protectedParam|] = false; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration2.baseline.jsonc b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration2.baseline.jsonc new file mode 100644 index 0000000000000..e70a192ff17f7 --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration2.baseline.jsonc @@ -0,0 +1,123 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(<|private {/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}privateParam|]}: number|>, +// public {publicParam}: string, +// protected {protectedParam}: boolean) { +// +// let localPrivate = [|{| kind: "reference" |}privateParam|]; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private {privateParam}: number, +// <|public {/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}publicParam|]}: string|>, +// protected {protectedParam}: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = [|{| kind: "reference" |}publicParam|]; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private {privateParam}: number, +// public {publicParam}: string, +// <|protected {/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}protectedParam|]}: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = [|{| kind: "reference" |}protectedParam|]; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(<|private {[|{| kind: "writtenReference" |}privateParam|]}: number|>, +// public {publicParam}: string, +// protected {protectedParam}: boolean) { +// +// let localPrivate = /*HIGHLIGHTS*/[|{| kind: "reference" |}privateParam|]; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private {privateParam}: number, +// <|public {[|{| kind: "writtenReference" |}publicParam|]}: string|>, +// protected {protectedParam}: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = /*HIGHLIGHTS*/[|{| kind: "reference" |}publicParam|]; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private {privateParam}: number, +// public {publicParam}: string, +// <|protected {[|{| kind: "writtenReference" |}protectedParam|]}: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = /*HIGHLIGHTS*/[|{| kind: "reference" |}protectedParam|]; +// this.protectedParam = false; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration3.baseline.jsonc b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration3.baseline.jsonc new file mode 100644 index 0000000000000..ef62f61f1e4c6 --- /dev/null +++ b/tests/baselines/reference/documentHighlightAtParameterPropertyDeclaration3.baseline.jsonc @@ -0,0 +1,123 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(<|private [/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}privateParam|]]: number|>, +// public [publicParam]: string, +// protected [protectedParam]: boolean) { +// +// let localPrivate = [|{| kind: "reference" |}privateParam|]; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private [privateParam]: number, +// <|public [/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}publicParam|]]: string|>, +// protected [protectedParam]: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = [|{| kind: "reference" |}publicParam|]; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private [privateParam]: number, +// public [publicParam]: string, +// <|protected [/*HIGHLIGHTS*/[|{| kind: "writtenReference" |}protectedParam|]]: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = [|{| kind: "reference" |}protectedParam|]; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(<|private [[|{| kind: "writtenReference" |}privateParam|]]: number|>, +// public [publicParam]: string, +// protected [protectedParam]: boolean) { +// +// let localPrivate = /*HIGHLIGHTS*/[|{| kind: "reference" |}privateParam|]; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private [privateParam]: number, +// <|public [[|{| kind: "writtenReference" |}publicParam|]]: string|>, +// protected [protectedParam]: boolean) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = /*HIGHLIGHTS*/[|{| kind: "reference" |}publicParam|]; +// this.publicParam += " Hello!"; +// +// let localProtected = protectedParam; +// this.protectedParam = false; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class Foo { +// // This is not valid syntax: parameter property can't be binding pattern +// constructor(private [privateParam]: number, +// public [publicParam]: string, +// <|protected [[|{| kind: "writtenReference" |}protectedParam|]]: boolean|>) { +// +// let localPrivate = privateParam; +// this.privateParam += 10; +// +// let localPublic = publicParam; +// this.publicParam += " Hello!"; +// +// let localProtected = /*HIGHLIGHTS*/[|{| kind: "reference" |}protectedParam|]; +// this.protectedParam = false; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightDefaultInKeyword.baseline.jsonc b/tests/baselines/reference/documentHighlightDefaultInKeyword.baseline.jsonc new file mode 100644 index 0000000000000..8219a3149f7a1 --- /dev/null +++ b/tests/baselines/reference/documentHighlightDefaultInKeyword.baseline.jsonc @@ -0,0 +1,11 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightDefaultInKeyword.ts === +// /*HIGHLIGHTS*/case +// default + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightDefaultInKeyword.ts === +// case +// /*HIGHLIGHTS*/default \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightDefaultInSwitch.baseline.jsonc b/tests/baselines/reference/documentHighlightDefaultInSwitch.baseline.jsonc new file mode 100644 index 0000000000000..838534618e7f2 --- /dev/null +++ b/tests/baselines/reference/documentHighlightDefaultInSwitch.baseline.jsonc @@ -0,0 +1,21 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightDefaultInSwitch.ts === +// const foo = 'foo'; +// [|{| kind: "none" |}switch|] (foo) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 'foo': +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightDefaultInSwitch.ts === +// const foo = 'foo'; +// [|{| kind: "none" |}switch|] (foo) { +// [|{| kind: "none" |}case|] 'foo': +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightInExport1.baseline.jsonc b/tests/baselines/reference/documentHighlightInExport1.baseline.jsonc new file mode 100644 index 0000000000000..a0d56e1ea5921 --- /dev/null +++ b/tests/baselines/reference/documentHighlightInExport1.baseline.jsonc @@ -0,0 +1,32 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInExport1.ts === +// <|class /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}C|] {}|> +// <|<|export { [|{| contextId: 1, kind: "reference" |}C|] as [|{| contextId: 2, kind: "writtenReference" |}D|] };|>|> + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInExport1.ts === +// class C {} +// /*HIGHLIGHTS*/export { C as D }; + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInExport1.ts === +// <|class [|{| kind: "writtenReference" |}C|] {}|> +// <|<|export { /*HIGHLIGHTS*/[|{| contextId: 1, kind: "reference" |}C|] as [|{| contextId: 2, kind: "writtenReference" |}D|] };|>|> + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInExport1.ts === +// class C {} +// export { C /*HIGHLIGHTS*/as D }; + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInExport1.ts === +// class C {} +// <|export { C as /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}D|] };|> \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightInKeyword.baseline.jsonc b/tests/baselines/reference/documentHighlightInKeyword.baseline.jsonc new file mode 100644 index 0000000000000..43eb97ae986ef --- /dev/null +++ b/tests/baselines/reference/documentHighlightInKeyword.baseline.jsonc @@ -0,0 +1,33 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInKeyword.ts === +// export type Foo = { +// [K /*HIGHLIGHTS*/in keyof T]: any; +// } +// +// "a" in {}; +// +// for (let a in {}) {} + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInKeyword.ts === +// export type Foo = { +// [K in keyof T]: any; +// } +// +// "a" /*HIGHLIGHTS*/in {}; +// +// for (let a in {}) {} + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightInKeyword.ts === +// export type Foo = { +// [K in keyof T]: any; +// } +// +// "a" in {}; +// +// for (let a /*HIGHLIGHTS*/in {}) {} \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightInTypeExport.baseline.jsonc b/tests/baselines/reference/documentHighlightInTypeExport.baseline.jsonc new file mode 100644 index 0000000000000..576126e15544e --- /dev/null +++ b/tests/baselines/reference/documentHighlightInTypeExport.baseline.jsonc @@ -0,0 +1,98 @@ +// === documentHighlights === +// === /1.ts === +// <|type /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}A|] = 1;|> +// <|<|export { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /1.ts === +// <|type [|{| kind: "writtenReference" |}A|] = 1;|> +// <|<|export { /*HIGHLIGHTS*/[|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /1.ts === +// type A = 1; +// <|export { A as /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}B|] };|> + + + +// === documentHighlights === +// === /2.ts === +// <|type /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}A|] = 1;|> +// let A: [|{| kind: "reference" |}A|] = 1; +// <|<|export { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /2.ts === +// type A = 1; +// <|let /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}A|]: A = 1;|> +// <|<|export { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /2.ts === +// <|type [|{| kind: "writtenReference" |}A|] = 1;|> +// let A: /*HIGHLIGHTS*/[|{| kind: "reference" |}A|] = 1; +// <|<|export { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /2.ts === +// <|type [|{| kind: "writtenReference" |}A|] = 1;|> +// <|let [|{| kind: "writtenReference" |}A|]: [|{| kind: "reference" |}A|] = 1;|> +// <|<|export { /*HIGHLIGHTS*/[|{| contextId: 2, kind: "reference" |}A|] as [|{| contextId: 3, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /2.ts === +// type A = 1; +// let A: A = 1; +// <|export { A as /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}B|] };|> + + + +// === documentHighlights === +// === /3.ts === +// <|type /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}A|] = 1;|> +// let A: [|{| kind: "reference" |}A|] = 1; +// <|<|export type { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /3.ts === +// type A = 1; +// <|let /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}A|]: A = 1;|> +// <|<|export type { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /3.ts === +// <|type [|{| kind: "writtenReference" |}A|] = 1;|> +// let A: /*HIGHLIGHTS*/[|{| kind: "reference" |}A|] = 1; +// <|<|export type { [|{| contextId: 1, kind: "reference" |}A|] as [|{| contextId: 2, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /3.ts === +// <|type [|{| kind: "writtenReference" |}A|] = 1;|> +// <|let [|{| kind: "writtenReference" |}A|]: [|{| kind: "reference" |}A|] = 1;|> +// <|<|export type { /*HIGHLIGHTS*/[|{| contextId: 2, kind: "reference" |}A|] as [|{| contextId: 3, kind: "writtenReference" |}B|] };|>|> + + + +// === documentHighlights === +// === /3.ts === +// type A = 1; +// let A: A = 1; +// <|export type { A as /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}B|] };|> \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightJSDocTypedef.baseline.jsonc b/tests/baselines/reference/documentHighlightJSDocTypedef.baseline.jsonc new file mode 100644 index 0000000000000..9311fd67d4b5e --- /dev/null +++ b/tests/baselines/reference/documentHighlightJSDocTypedef.baseline.jsonc @@ -0,0 +1,65 @@ +// === documentHighlights === +// === /tests/cases/fourslash/index.js === +// /** +// * @typedef {{ +// * /*HIGHLIGHTS*/<|[|{| kind: "reference" |}foo|]: string;|> +// * bar: number; +// * }} Foo +// */ +// +// /** @type {Foo} */ +// const x = { +// <|[|{| kind: "writtenReference" |}foo|]: ""|>, +// bar: 42, +// }; + + + +// === documentHighlights === +// === /tests/cases/fourslash/index.js === +// /** +// * @typedef {{ +// * foo: string; +// * /*HIGHLIGHTS*/<|[|{| kind: "reference" |}bar|]: number;|> +// * }} Foo +// */ +// +// /** @type {Foo} */ +// const x = { +// foo: "", +// <|[|{| kind: "writtenReference" |}bar|]: 42|>, +// }; + + + +// === documentHighlights === +// === /tests/cases/fourslash/index.js === +// /** +// * @typedef {{ +// * <|[|{| kind: "reference" |}foo|]: string;|> +// * bar: number; +// * }} Foo +// */ +// +// /** @type {Foo} */ +// const x = { +// /*HIGHLIGHTS*/<|[|{| kind: "writtenReference" |}foo|]: ""|>, +// bar: 42, +// }; + + + +// === documentHighlights === +// === /tests/cases/fourslash/index.js === +// /** +// * @typedef {{ +// * foo: string; +// * <|[|{| kind: "reference" |}bar|]: number;|> +// * }} Foo +// */ +// +// /** @type {Foo} */ +// const x = { +// foo: "", +// /*HIGHLIGHTS*/<|[|{| kind: "writtenReference" |}bar|]: 42|>, +// }; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightMultilineTemplateStrings.baseline.jsonc b/tests/baselines/reference/documentHighlightMultilineTemplateStrings.baseline.jsonc new file mode 100644 index 0000000000000..01b4a06a77ec1 --- /dev/null +++ b/tests/baselines/reference/documentHighlightMultilineTemplateStrings.baseline.jsonc @@ -0,0 +1,7 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts === +// const foo = ` +// a +// /*HIGHLIGHTS*/b +// c +// ` \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightTemplateStrings.baseline.jsonc b/tests/baselines/reference/documentHighlightTemplateStrings.baseline.jsonc new file mode 100644 index 0000000000000..9994ec48239a1 --- /dev/null +++ b/tests/baselines/reference/documentHighlightTemplateStrings.baseline.jsonc @@ -0,0 +1,15 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightTemplateStrings.ts === +// type Foo = "[|{| kind: "reference", isInString: true |}a|]" | "b"; +// +// class C { +// p: Foo = `[|{| kind: "reference", isInString: true |}a|]`; +// m() { +// switch (this.p) { +// case `/*HIGHLIGHTS*/[|{| kind: "reference", isInString: true |}a|]`: +// return 1; +// case "b": +// return 2; +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights01.baseline.jsonc b/tests/baselines/reference/documentHighlights01.baseline.jsonc new file mode 100644 index 0000000000000..e500c403fef40 --- /dev/null +++ b/tests/baselines/reference/documentHighlights01.baseline.jsonc @@ -0,0 +1,29 @@ +// === documentHighlights === +// === /tests/cases/fourslash/server/a.ts === +// function /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/a.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof /*HIGHLIGHTS*/[|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/a.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/a.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|](/*HIGHLIGHTS*/[|{| kind: "reference" |}f|]); +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights02.baseline.jsonc b/tests/baselines/reference/documentHighlights02.baseline.jsonc new file mode 100644 index 0000000000000..30659364018c1 --- /dev/null +++ b/tests/baselines/reference/documentHighlights02.baseline.jsonc @@ -0,0 +1,48 @@ +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/server/a.ts === +// function /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}foo|] () { +// return 1; +// } +// [|{| kind: "reference" |}foo|](); + +// === /tests/cases/fourslash/server/b.ts === +// /// +// [|{| kind: "reference" |}foo|](); + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/server/a.ts === +// function [|{| kind: "writtenReference" |}foo|] () { +// return 1; +// } +// /*HIGHLIGHTS*/[|{| kind: "reference" |}foo|](); + +// === /tests/cases/fourslash/server/b.ts === +// /// +// [|{| kind: "reference" |}foo|](); + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/server/a.ts === +// function [|{| kind: "writtenReference" |}foo|] () { +// return 1; +// } +// [|{| kind: "reference" |}foo|](); + +// === /tests/cases/fourslash/server/b.ts === +// /// +// /*HIGHLIGHTS*/[|{| kind: "reference" |}foo|](); \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightsInvalidGlobalThis.baseline.jsonc b/tests/baselines/reference/documentHighlightsInvalidGlobalThis.baseline.jsonc new file mode 100644 index 0000000000000..0779a2d3e1f78 --- /dev/null +++ b/tests/baselines/reference/documentHighlightsInvalidGlobalThis.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightsInvalidGlobalThis.ts === +// declare global { +// <|export { globalThis as /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}global|] }|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightsInvalidModifierLocations.baseline.jsonc b/tests/baselines/reference/documentHighlightsInvalidModifierLocations.baseline.jsonc new file mode 100644 index 0000000000000..1dc76a9c9a553 --- /dev/null +++ b/tests/baselines/reference/documentHighlightsInvalidModifierLocations.baseline.jsonc @@ -0,0 +1,53 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts === +// class C { +// m(/*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] p) {} +// } +// function f(readonly p) {} +// +// class D { +// m(public p) {} +// } +// function g(public p) {} + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts === +// class C { +// m(readonly p) {} +// } +// function f(/*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] p) {} +// +// class D { +// m(public p) {} +// } +// function g(public p) {} + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts === +// class C { +// m(readonly p) {} +// } +// function f(readonly p) {} +// +// class D { +// m(/*HIGHLIGHTS*/[|{| kind: "none" |}public|] p) {} +// } +// function g(public p) {} + + + +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts === +// class C { +// m(readonly p) {} +// } +// function f(readonly p) {} +// +// class D { +// m(public p) {} +// } +// function g(/*HIGHLIGHTS*/[|{| kind: "none" |}public|] p) {} \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlightsTypeParameterInHeritageClause01.baseline.jsonc b/tests/baselines/reference/documentHighlightsTypeParameterInHeritageClause01.baseline.jsonc new file mode 100644 index 0000000000000..66e9b1469bcc1 --- /dev/null +++ b/tests/baselines/reference/documentHighlightsTypeParameterInHeritageClause01.baseline.jsonc @@ -0,0 +1,18 @@ +// === documentHighlights === +// === /tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts === +// interface I extends I<[|{| kind: "reference" |}T|]>, [|{| kind: "reference" |}T|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts === +// interface I<[|{| kind: "writtenReference" |}T|]> extends I, [|{| kind: "reference" |}T|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts === +// interface I<[|{| kind: "writtenReference" |}T|]> extends I<[|{| kind: "reference" |}T|]>, /*HIGHLIGHTS*/[|{| kind: "reference" |}T|] { +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_33722.baseline.jsonc b/tests/baselines/reference/documentHighlights_33722.baseline.jsonc new file mode 100644 index 0000000000000..c0a4b45e14050 --- /dev/null +++ b/tests/baselines/reference/documentHighlights_33722.baseline.jsonc @@ -0,0 +1,8 @@ +// === documentHighlights === +// filesToSearch: +// /x.ts + +// === /x.ts === +// import y from "./y"; +// +// y()./*HIGHLIGHTS*/foo(); \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_40082.baseline.jsonc b/tests/baselines/reference/documentHighlights_40082.baseline.jsonc new file mode 100644 index 0000000000000..7084d66472af0 --- /dev/null +++ b/tests/baselines/reference/documentHighlights_40082.baseline.jsonc @@ -0,0 +1,6 @@ +// === documentHighlights === +// === /tests/cases/fourslash/documentHighlights_40082.ts === +// export = (state, messages) => { +// <|export /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}default|] { +// }|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_filesToSearch.baseline.jsonc b/tests/baselines/reference/documentHighlights_filesToSearch.baseline.jsonc new file mode 100644 index 0000000000000..454e4353ce2af --- /dev/null +++ b/tests/baselines/reference/documentHighlights_filesToSearch.baseline.jsonc @@ -0,0 +1,9 @@ +// === documentHighlights === +// === /a.ts === +// <|export const /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}x|] = 0;|> + + + +// === documentHighlights === +// === /b.ts === +// <|import { /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}x|] } from "./a";|> \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_moduleImport_filesToSearch.baseline.jsonc b/tests/baselines/reference/documentHighlights_moduleImport_filesToSearch.baseline.jsonc new file mode 100644 index 0000000000000..18fb6b2be5203 --- /dev/null +++ b/tests/baselines/reference/documentHighlights_moduleImport_filesToSearch.baseline.jsonc @@ -0,0 +1,25 @@ +// === documentHighlights === +// filesToSearch: +// /a.ts +// /b.ts + +// === /b.ts === +// <|import { [|{| kind: "writtenReference" |}x|] } from "foo";|> + +// === /a.ts === +// import * as foo from "foo"; +// foo./*HIGHLIGHTS*/[|{| kind: "reference" |}x|]; + + + +// === documentHighlights === +// filesToSearch: +// /a.ts +// /b.ts + +// === /b.ts === +// <|import { /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}x|] } from "foo";|> + +// === /a.ts === +// import * as foo from "foo"; +// foo.[|{| kind: "reference" |}x|]; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_moduleImport_filesToSearchWithInvalidFile.baseline.jsonc b/tests/baselines/reference/documentHighlights_moduleImport_filesToSearchWithInvalidFile.baseline.jsonc new file mode 100644 index 0000000000000..1f880316c8f9a --- /dev/null +++ b/tests/baselines/reference/documentHighlights_moduleImport_filesToSearchWithInvalidFile.baseline.jsonc @@ -0,0 +1,27 @@ +// === documentHighlights === +// filesToSearch: +// /a.ts +// /b.ts +// /unknown.ts + +// === /b.ts === +// <|import { [|{| kind: "writtenReference" |}x|] } from "foo";|> + +// === /a.ts === +// import * as foo from "foo"; +// foo./*HIGHLIGHTS*/[|{| kind: "reference" |}x|]; + + + +// === documentHighlights === +// filesToSearch: +// /a.ts +// /b.ts +// /unknown.ts + +// === /b.ts === +// <|import { /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}x|] } from "foo";|> + +// === /a.ts === +// import * as foo from "foo"; +// foo.[|{| kind: "reference" |}x|]; \ No newline at end of file diff --git a/tests/baselines/reference/documentHighlights_windowsPath.baseline.jsonc b/tests/baselines/reference/documentHighlights_windowsPath.baseline.jsonc new file mode 100644 index 0000000000000..5f5cd71f207b1 --- /dev/null +++ b/tests/baselines/reference/documentHighlights_windowsPath.baseline.jsonc @@ -0,0 +1,9 @@ +// === documentHighlights === +// filesToSearch: +// C:\a\b\c.ts + +// === C:/a/b/c.ts === +// <|var [|{| kind: "writtenReference" |}x|] = 1;|> + +// === C:\a\b\c.ts === +// var /*HIGHLIGHTS*/x = 1; \ No newline at end of file diff --git a/tests/baselines/reference/doubleUnderscoreRenames.baseline.jsonc b/tests/baselines/reference/doubleUnderscoreRenames.baseline.jsonc new file mode 100644 index 0000000000000..9f1b98cd68b0e --- /dev/null +++ b/tests/baselines/reference/doubleUnderscoreRenames.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/fileA.ts === +// <|export function /*RENAME*/[|__fooRENAME|]() { +// }|> +// + +// === /tests/cases/fourslash/fileB.ts === +// <|import { [|__fooRENAME|] as bar } from "./fileA";|> +// +// bar(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/fileA.ts === +// <|export function [|__fooRENAME|]() { +// }|> +// + +// === /tests/cases/fourslash/fileB.ts === +// <|import { /*RENAME*/[|__fooRENAME|] as bar } from "./fileA";|> +// +// bar(); \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePackageServices.baseline.jsonc b/tests/baselines/reference/duplicatePackageServices.baseline.jsonc index 64bea82c076e9..9983941171abf 100644 --- a/tests/baselines/reference/duplicatePackageServices.baseline.jsonc +++ b/tests/baselines/reference/duplicatePackageServices.baseline.jsonc @@ -1,707 +1,528 @@ +// === findAllReferences === // === /node_modules/a/index.d.ts === -// import [|X|]/*FIND ALL REFS*/ from "x"; -// export function a(x: [|X|]): void; +// <|import [|{| defId: 0, isWriteAccess: true, isDefinition: true |}X|]/*FIND ALL REFS*/ from "x";|> +// export function a(x: [|{| defId: 0 |}X|]): void; + +// === /node_modules/a/node_modules/x/index.d.ts === +// <|export default class [|{| defId: 1, isWriteAccess: true |}X|] { +// private x: number; +// }|> // === /node_modules/b/index.d.ts === -// import [|X|] from "x"; -// export const b: [|X|]; +// <|import [|{| defId: 2, isWriteAccess: true |}X|] from "x";|> +// export const b: [|{| defId: 2 |}X|]; + + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|import [|{| defId: 0 |}X|]/*FIND ALL REFS*/ from "x";|> + // export function a(x: X): void; + + // === /node_modules/a/node_modules/x/index.d.ts === + // <|export default class [|{| defId: 1 |}X|] { + // private x: number; + // }|> + + // === /node_modules/b/index.d.ts === + // <|import [|{| defId: 2 |}X|] from "x";|> + // export const b: X; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } + ] + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class X", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + } + ] + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } + ] + } + ] + + +// === findAllReferences === // === /node_modules/a/node_modules/x/index.d.ts === -// export default class [|X|] { +// <|export default class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}X|] { // private x: number; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } +// }|> + +// === /node_modules/a/index.d.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}X|] from "x";|> +// export function a(x: [|{| defId: 1 |}X|]): void; + +// === /node_modules/b/index.d.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}X|] from "x";|> +// export const b: [|{| defId: 2 |}X|]; + + // === Definitions === + // === /node_modules/a/node_modules/x/index.d.ts === + // <|export default class /*FIND ALL REFS*/[|{| defId: 0 |}X|] { + // private x: number; + // }|> + + // === /node_modules/a/index.d.ts === + // <|import [|{| defId: 1 |}X|] from "x";|> + // export function a(x: X): void; + + // === /node_modules/b/index.d.ts === + // <|import [|{| defId: 2 |}X|] from "x";|> + // export const b: X; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class X", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "kind": "class", - "name": "class X", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/b/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } ] - } -] + } + ] -// === /node_modules/a/index.d.ts === -// import [|X|] from "x"; -// export function a(x: [|X|]): void; + +// === findAllReferences === // === /node_modules/b/index.d.ts === -// import [|X|] from "x"; -// export const b: [|X|]; +// <|import [|{| defId: 0, isWriteAccess: true, isDefinition: true |}X|]/*FIND ALL REFS*/ from "x";|> +// export const b: [|{| defId: 0 |}X|]; // === /node_modules/a/node_modules/x/index.d.ts === -// export default class /*FIND ALL REFS*/[|X|] { +// <|export default class [|{| defId: 1, isWriteAccess: true |}X|] { // private x: number; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "kind": "class", - "name": "class X", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": true - } +// }|> + +// === /node_modules/a/index.d.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}X|] from "x";|> +// export function a(x: [|{| defId: 2 |}X|]): void; + + // === Definitions === + // === /node_modules/b/index.d.ts === + // <|import [|{| defId: 0 |}X|]/*FIND ALL REFS*/ from "x";|> + // export const b: X; + + // === /node_modules/a/node_modules/x/index.d.ts === + // <|export default class [|{| defId: 1 |}X|] { + // private x: number; + // }|> + + // === /node_modules/a/index.d.ts === + // <|import [|{| defId: 2 |}X|] from "x";|> + // export function a(x: X): void; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class X", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/b/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class X\nimport X", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /node_modules/b/index.d.ts === -// import [|X|]/*FIND ALL REFS*/ from "x"; -// export const b: [|X|]; + +// === goToDefinition === +// === /node_modules/a/node_modules/x/index.d.ts === +// <|export default class [|X|] { +// private x: number; +// }|> // === /node_modules/a/index.d.ts === -// import [|X|] from "x"; -// export function a(x: [|X|]): void; +// import [|X|]/*GOTO DEF*/ from "x"; +// export function a(x: X): void; + + // === Details === + [ + { + "kind": "class", + "name": "X", + "containerName": "\"/node_modules/a/node_modules/x/index\"", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + +// === goToDefinition === // === /node_modules/a/node_modules/x/index.d.ts === -// export default class [|X|] { +// <|export default class [|X|] { // private x: number; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/b/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/node_modules/b/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "kind": "class", - "name": "class X", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/node_modules/a/node_modules/x/index.d.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": false - } - ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "alias", - "name": "(alias) class X\nimport X", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] \ No newline at end of file +// }|> + +// === /node_modules/b/index.d.ts === +// import [|X|]/*GOTO DEF*/ from "x"; +// export const b: X; + + // === Details === + [ + { + "kind": "class", + "name": "X", + "containerName": "\"/node_modules/a/node_modules/x/index\"", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/emptyExportFindReferences.baseline.jsonc b/tests/baselines/reference/emptyExportFindReferences.baseline.jsonc new file mode 100644 index 0000000000000..04b40814523cb --- /dev/null +++ b/tests/baselines/reference/emptyExportFindReferences.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/Foo.js === +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}module|].exports = { +// +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/esModuleInteropFindAllReferences.baseline.jsonc b/tests/baselines/reference/esModuleInteropFindAllReferences.baseline.jsonc index 6d7f5565c8e05..bbf5f6f2707a2 100644 --- a/tests/baselines/reference/esModuleInteropFindAllReferences.baseline.jsonc +++ b/tests/baselines/reference/esModuleInteropFindAllReferences.baseline.jsonc @@ -1,157 +1,113 @@ -undefined +// === findAllReferences === +// === /abc.d.ts === +// declare module "a" { +// /*FIND ALL REFS*/export const x: number; +// } + + + +// === findAllReferences === +// === /abc.d.ts === +// declare module "a" { +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]: number;|> +// } // === /b.ts === // import a from "a"; // a.[|x|]; + // === Definitions === + // === /abc.d.ts === + // declare module "a" { + // <|export const /*FIND ALL REFS*/[|x|]: number;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /abc.d.ts === // declare module "a" { -// export const /*FIND ALL REFS*/[|x|]: number; +// <|export const [|{| isWriteAccess: true |}x|]: number;|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/abc.d.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/abc.d.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /b.ts === // import a from "a"; // a./*FIND ALL REFS*/[|x|]; -// === /abc.d.ts === -// declare module "a" { -// export const [|x|]: number; -// } + // === Definitions === + // === /abc.d.ts === + // declare module "a" { + // <|export const [|x|]: number;|> + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/abc.d.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/abc.d.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/esModuleInteropFindAllReferences2.baseline.jsonc b/tests/baselines/reference/esModuleInteropFindAllReferences2.baseline.jsonc index 8b181da1df407..4062c24e9c153 100644 --- a/tests/baselines/reference/esModuleInteropFindAllReferences2.baseline.jsonc +++ b/tests/baselines/reference/esModuleInteropFindAllReferences2.baseline.jsonc @@ -1,155 +1,108 @@ -undefined +// === findAllReferences === +// === /a.d.ts === +// export as namespace abc; +// /*FIND ALL REFS*/export const x: number; + + + +// === findAllReferences === +// === /a.d.ts === +// export as namespace abc; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]: number;|> // === /b.ts === // import a from "./a"; // a.[|x|]; -// === /a.d.ts === -// export as namespace abc; -// export const /*FIND ALL REFS*/[|x|]: number; + // === Definitions === + // === /a.d.ts === + // export as namespace abc; + // <|export const /*FIND ALL REFS*/[|x|]: number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.d.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/a.d.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /a.d.ts === +// export as namespace abc; +// <|export const [|{| isWriteAccess: true |}x|]: number;|> // === /b.ts === // import a from "./a"; // a./*FIND ALL REFS*/[|x|]; -// === /a.d.ts === -// export as namespace abc; -// export const [|x|]: number; + // === Definitions === + // === /a.d.ts === + // export as namespace abc; + // <|export const [|x|]: number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.d.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/a.d.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/explainFilesNodeNextWithTypesReference.baseline.jsonc b/tests/baselines/reference/explainFilesNodeNextWithTypesReference.baseline.jsonc index d6a61903cc230..d2c250cbd4e48 100644 --- a/tests/baselines/reference/explainFilesNodeNextWithTypesReference.baseline.jsonc +++ b/tests/baselines/reference/explainFilesNodeNextWithTypesReference.baseline.jsonc @@ -1,36 +1,27 @@ +// === findAllReferences === // === /node_modules/react-hook-form/dist/index.d.ts === // /// // export type Foo = React.Whatever; // export function useForm(): any; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/react-hook-form/dist/index.d.ts", - "kind": "string", - "name": "react", - "textSpan": { - "start": 22, - "length": 5 - }, - "displayParts": [ - { - "text": "\"react\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 5 - }, - "fileName": "/node_modules/react-hook-form/dist/index.d.ts", - "isWriteAccess": false - } + // === Definitions === + // === /node_modules/react-hook-form/dist/index.d.ts === + // /// + // export type Foo = React.Whatever; + // export function useForm(): any; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "string", + "name": "react", + "displayParts": [ + { + "text": "\"react\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/exportInObjectLiteral.baseline.jsonc b/tests/baselines/reference/exportInObjectLiteral.baseline.jsonc new file mode 100644 index 0000000000000..c537de286aaa6 --- /dev/null +++ b/tests/baselines/reference/exportInObjectLiteral.baseline.jsonc @@ -0,0 +1,8 @@ +// === documentHighlights === +// filesToSearch: +// /tests/cases/fourslash/a.ts + +// === /tests/cases/fourslash/a.ts === +// const k = { +// /*HIGHLIGHTS*/export f() { } +// } \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferPropertyAccessExpressionHeritageClause.baseline.jsonc b/tests/baselines/reference/findAllReferPropertyAccessExpressionHeritageClause.baseline.jsonc index 054cd10115e9c..6a30dea50c415 100644 --- a/tests/baselines/reference/findAllReferPropertyAccessExpressionHeritageClause.baseline.jsonc +++ b/tests/baselines/reference/findAllReferPropertyAccessExpressionHeritageClause.baseline.jsonc @@ -1,302 +1,213 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === // class B {} // function foo() { -// return {/*FIND ALL REFS*/[|B|]: B}; +// return {/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}B|]: B|>}; // } // class C extends (foo()).[|B|] {} // class C1 extends foo().[|B|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "kind": "property", - "name": "(property) B: typeof B", - "textSpan": { - "start": 40, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 40, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "contextSpan": { - "start": 40, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 73, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === + // class B {} + // function foo() { + // return {/*FIND ALL REFS*/<|[|B|]: B|>}; + // } + // class C extends (foo()).B {} + // class C1 extends foo().B {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B: typeof B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === // class B {} // function foo() { -// return {[|B|]: B}; +// return {<|[|{| isWriteAccess: true |}B|]: B|>}; // } // class C extends (foo())./*FIND ALL REFS*/[|B|] {} // class C1 extends foo().[|B|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "kind": "property", - "name": "(property) B: typeof B", - "textSpan": { - "start": 40, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 40, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "contextSpan": { - "start": 40, - "length": 4 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 73, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === + // class B {} + // function foo() { + // return {<|[|B|]: B|>}; + // } + // class C extends (foo())./*FIND ALL REFS*/B {} + // class C1 extends foo().B {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B: typeof B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === // class B {} // function foo() { -// return {[|B|]: B}; +// return {<|[|{| isWriteAccess: true |}B|]: B|>}; // } // class C extends (foo()).[|B|] {} // class C1 extends foo()./*FIND ALL REFS*/[|B|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "kind": "property", - "name": "(property) B: typeof B", - "textSpan": { - "start": 40, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 40, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "contextSpan": { - "start": 40, - "length": 4 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 73, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferPropertyAccessExpressionHeritageClause.ts === + // class B {} + // function foo() { + // return {<|[|B|]: B|>}; + // } + // class C extends (foo()).B {} + // class C1 extends foo()./*FIND ALL REFS*/B {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B: typeof B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesDynamicImport1.baseline.jsonc b/tests/baselines/reference/findAllReferencesDynamicImport1.baseline.jsonc index b30b1d49878cc..63e5167d0ecd2 100644 --- a/tests/baselines/reference/findAllReferencesDynamicImport1.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesDynamicImport1.baseline.jsonc @@ -1,221 +1,163 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/foo.ts === +// export function foo() { return "foo"; } +// /*FIND ALL REFS*/import("./foo") +// var x = import("./foo") + + +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === // export function foo() { return "foo"; } -// import("/*FIND ALL REFS*/[|./foo|]") -// var x = import("[|./foo|]") +// <|import("/*FIND ALL REFS*/[|./foo|]")|> +// <|var x = import("[|./foo|]")|> + + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // [|export function foo() { return "foo"; } + // import("/*FIND ALL REFS*/./foo") + // var x = import("./foo")|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "module", - "name": "module \"/tests/cases/fourslash/foo\"", - "textSpan": { - "start": 0, - "length": 79 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/tests/cases/fourslash/foo\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 40, - "length": 15 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 72, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 56, - "length": 23 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/tests/cases/fourslash/foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/tests/cases/fourslash/foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === // export function foo() { return "foo"; } // import("./foo") -// /*FIND ALL REFS*/var [|x|] = import("./foo") +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}x|] = import("./foo")|> + + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // export function foo() { return "foo"; } + // import("./foo") + // /*FIND ALL REFS*/<|var [|x|] = import("./foo")|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "var", - "name": "var x: Promise", - "textSpan": { - "start": 60, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Promise", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/tests/cases/fourslash/foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ">", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 56, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 56, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: Promise", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Promise", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/tests/cases/fourslash/foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === // export function foo() { return "foo"; } -// import("[|./foo|]") -// var x = import("/*FIND ALL REFS*/[|./foo|]") +// <|import("[|./foo|]")|> +// <|var x = import("/*FIND ALL REFS*/[|./foo|]")|> + + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // [|export function foo() { return "foo"; } + // import("./foo") + // var x = import("/*FIND ALL REFS*/./foo")|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "module", - "name": "module \"/tests/cases/fourslash/foo\"", - "textSpan": { - "start": 0, - "length": 79 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/tests/cases/fourslash/foo\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 40, - "length": 15 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 72, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 56, - "length": 23 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/tests/cases/fourslash/foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/tests/cases/fourslash/foo\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesDynamicImport2.baseline.jsonc b/tests/baselines/reference/findAllReferencesDynamicImport2.baseline.jsonc index 44521b9ab4588..c8259e657c15b 100644 --- a/tests/baselines/reference/findAllReferencesDynamicImport2.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesDynamicImport2.baseline.jsonc @@ -1,167 +1,141 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === -// export function /*FIND ALL REFS*/[|bar|]() { return "bar"; } +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bar|]() { return "bar"; }|> // var x = import("./foo"); // x.then(foo => { // foo.[|bar|](); // }) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "function", - "name": "function bar(): string", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 89, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // <|export function /*FIND ALL REFS*/[|bar|]() { return "bar"; }|> + // var x = import("./foo"); + // x.then(foo => { + // foo.bar(); + // }) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function bar(): string", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === -// export function [|bar|]() { return "bar"; } +// <|export function [|{| isWriteAccess: true |}bar|]() { return "bar"; }|> // var x = import("./foo"); // x.then(foo => { // foo./*FIND ALL REFS*/[|bar|](); // }) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "function", - "name": "function bar(): string", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 89, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // <|export function [|bar|]() { return "bar"; }|> + // var x = import("./foo"); + // x.then(foo => { + // foo./*FIND ALL REFS*/bar(); + // }) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function bar(): string", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/foo.ts === +// <|export function /*RENAME*/[|barRENAME|]() { return "bar"; }|> +// var x = import("./foo"); +// x.then(foo => { +// foo.[|barRENAME|](); +// }) + + + +// === findRenameLocations === +// === /tests/cases/fourslash/foo.ts === +// <|export function [|barRENAME|]() { return "bar"; }|> +// var x = import("./foo"); +// x.then(foo => { +// foo./*RENAME*/[|barRENAME|](); +// }) \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesDynamicImport3.baseline.jsonc b/tests/baselines/reference/findAllReferencesDynamicImport3.baseline.jsonc index 7c3e36b89df83..e4a485798ebe9 100644 --- a/tests/baselines/reference/findAllReferencesDynamicImport3.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesDynamicImport3.baseline.jsonc @@ -1,244 +1,185 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === -// export function /*FIND ALL REFS*/[|bar|]() { return "bar"; } -// import('./foo').then(({ [|bar|] }) => undefined); +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bar|]() { return "bar"; }|> +// import('./foo').then((<|{ [|{| isWriteAccess: true |}bar|] }|>) => undefined); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "function", - "name": "function bar(): string", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 62, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // <|export function /*FIND ALL REFS*/[|bar|]() { return "bar"; }|> + // import('./foo').then(({ bar }) => undefined); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function bar(): string", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === -// export function [|bar|]() { return "bar"; } -// import('./foo').then(({ /*FIND ALL REFS*/[|bar|] }) => undefined); +// <|export function [|{| defId: 0, isWriteAccess: true |}bar|]() { return "bar"; }|> +// import('./foo').then((<|{ /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}bar|] }|>) => undefined); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "function", - "name": "function bar(): string", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // <|export function [|{| defId: 0 |}bar|]() { return "bar"; }|> + // import('./foo').then((<|{ /*FIND ALL REFS*/[|{| defId: 1 |}bar|] }|>) => undefined); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function bar(): string", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "parameter", - "name": "(parameter) bar: () => string", - "textSpan": { - "start": 64, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "contextSpan": { - "start": 62, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) bar: () => string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/foo.ts === +// <|export function /*RENAME*/[|barRENAME|]() { return "bar"; }|> +// import('./foo').then((<|{ [|barRENAME|]: bar/*END SUFFIX*/ }|>) => undefined); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/foo.ts === +// export function bar() { return "bar"; } +// import('./foo').then((<|{ /*START PREFIX*/bar: /*RENAME*/[|barRENAME|] }|>) => undefined); \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFilteringMappedTypeProperty.baseline.jsonc b/tests/baselines/reference/findAllReferencesFilteringMappedTypeProperty.baseline.jsonc index 8453aea8c8330..05883993fef14 100644 --- a/tests/baselines/reference/findAllReferencesFilteringMappedTypeProperty.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFilteringMappedTypeProperty.baseline.jsonc @@ -1,284 +1,171 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === -// const obj = { /*FIND ALL REFS*/[|a|]: 1, b: 2 }; -// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { [|a|]: 0 }; +// const obj = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}a|]: 1|>, b: 2 }; +// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { <|[|{| isWriteAccess: true |}a|]: 0|> }; // filtered.[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "kind": "property", - "name": "(property) a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 14, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 109, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === + // const obj = { /*FIND ALL REFS*/<|[|a|]: 1|>, b: 2 }; + // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { a: 0 }; + // filtered.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === -// const obj = { [|a|]: 1, b: 2 }; -// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { /*FIND ALL REFS*/[|a|]: 0 }; +// const obj = { <|[|{| isWriteAccess: true |}a|]: 1|>, b: 2 }; +// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}a|]: 0|> }; // filtered.[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "kind": "property", - "name": "(property) a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 14, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 109, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === + // const obj = { <|[|a|]: 1|>, b: 2 }; + // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { /*FIND ALL REFS*/a: 0 }; + // filtered.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === -// const obj = { [|a|]: 1, b: 2 }; -// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { [|a|]: 0 }; +// const obj = { <|[|{| isWriteAccess: true |}a|]: 1|>, b: 2 }; +// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { <|[|{| isWriteAccess: true |}a|]: 0|> }; // filtered./*FIND ALL REFS*/[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "kind": "property", - "name": "(property) a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 14, - "length": 4 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "contextSpan": { - "start": 109, - "length": 4 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFilteringMappedTypeProperty.ts === + // const obj = { <|[|a|]: 1|>, b: 2 }; + // const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { a: 0 }; + // filtered./*FIND ALL REFS*/a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFromLinkTagReference1.baseline.jsonc b/tests/baselines/reference/findAllReferencesFromLinkTagReference1.baseline.jsonc index 9fc705112fb73..d01d74759b3de 100644 --- a/tests/baselines/reference/findAllReferencesFromLinkTagReference1.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFromLinkTagReference1.baseline.jsonc @@ -1,85 +1,69 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference1.ts === // enum E { // /** {@link /*FIND ALL REFS*/[|A|]} */ -// [|A|] +// [|{| isWriteAccess: true |}A|] // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference1.ts", - "kind": "enum member", - "name": "(enum member) E.A = 0", - "textSpan": { - "start": 34, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "A", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference1.ts === + // enum E { + // /** {@link /*FIND ALL REFS*/A} */ + // [|A|] + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.A = 0", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "A", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFromLinkTagReference2.baseline.jsonc b/tests/baselines/reference/findAllReferencesFromLinkTagReference2.baseline.jsonc index f897a6e5d5769..42bcd912fe817 100644 --- a/tests/baselines/reference/findAllReferencesFromLinkTagReference2.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFromLinkTagReference2.baseline.jsonc @@ -1,64 +1,43 @@ +// === findAllReferences === // === /a.ts === // enum E { // /** {@link /*FIND ALL REFS*/[|Foo|]} */ // Foo // } -// interface [|Foo|] { +// <|interface [|{| isWriteAccess: true |}Foo|] { // foo: E.Foo; -// } +// }|> + + // === Definitions === + // === /a.ts === + // enum E { + // /** {@link /*FIND ALL REFS*/Foo} */ + // Foo + // } + // <|interface [|Foo|] { + // foo: E.Foo; + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "interface", - "name": "interface Foo", - "textSpan": { - "start": 52, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 42, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 52, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 42, - "length": 33 - }, - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFromLinkTagReference3.baseline.jsonc b/tests/baselines/reference/findAllReferencesFromLinkTagReference3.baseline.jsonc index 5c9eefb255da2..fa6360ab4e1c0 100644 --- a/tests/baselines/reference/findAllReferencesFromLinkTagReference3.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFromLinkTagReference3.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// interface [|Foo|] { +// <|interface [|{| isWriteAccess: true |}Foo|] { // foo: E.Foo; -// } +// }|> // === /tests/cases/fourslash/b.ts === // enum E { @@ -9,58 +10,32 @@ // Foo // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "interface", - "name": "interface Foo", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|interface [|Foo|] { + // foo: E.Foo; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFromLinkTagReference4.baseline.jsonc b/tests/baselines/reference/findAllReferencesFromLinkTagReference4.baseline.jsonc index b1dbc94dc7666..c8120b9a063dd 100644 --- a/tests/baselines/reference/findAllReferencesFromLinkTagReference4.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFromLinkTagReference4.baseline.jsonc @@ -1,86 +1,71 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference4.ts === // enum E { // /** {@link /*FIND ALL REFS*/[|B|]} */ // A, -// [|B|] +// [|{| isWriteAccess: true |}B|] // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference4.ts", - "kind": "enum member", - "name": "(enum member) E.B = 1", - "textSpan": { - "start": 41, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "B", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference4.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference4.ts === + // enum E { + // /** {@link /*FIND ALL REFS*/B} */ + // A, + // [|B|] + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.B = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "B", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesFromLinkTagReference5.baseline.jsonc b/tests/baselines/reference/findAllReferencesFromLinkTagReference5.baseline.jsonc index c6f03b14a69d6..92acf107f02d2 100644 --- a/tests/baselines/reference/findAllReferencesFromLinkTagReference5.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesFromLinkTagReference5.baseline.jsonc @@ -1,85 +1,69 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference5.ts === // enum E { // /** {@link E./*FIND ALL REFS*/[|A|]} */ -// [|A|] +// [|{| isWriteAccess: true |}A|] // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference5.ts", - "kind": "enum member", - "name": "(enum member) E.A = 0", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "A", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference5.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesFromLinkTagReference5.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesFromLinkTagReference5.ts === + // enum E { + // /** {@link E./*FIND ALL REFS*/A} */ + // [|A|] + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.A = 0", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "A", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJSDocFunctionNew.baseline.jsonc b/tests/baselines/reference/findAllReferencesJSDocFunctionNew.baseline.jsonc index e560d93e0d602..827d162d9d6be 100644 --- a/tests/baselines/reference/findAllReferencesJSDocFunctionNew.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJSDocFunctionNew.baseline.jsonc @@ -1,72 +1,53 @@ +// === findAllReferences === // === /tests/cases/fourslash/Foo.js === -// /** @type {function (/*FIND ALL REFS*/[|new|]: string, string): string} */ +// /** @type {function (/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}new|]: string|>, string): string} */ // var f; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/Foo.js", - "kind": "parameter", - "name": "(parameter) new: string", - "textSpan": { - "start": 21, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "new", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 21, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/Foo.js", - "contextSpan": { - "start": 21, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/Foo.js === + // /** @type {function (/*FIND ALL REFS*/<|[|new|]: string|>, string): string} */ + // var f; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) new: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "new", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJSDocFunctionThis.baseline.jsonc b/tests/baselines/reference/findAllReferencesJSDocFunctionThis.baseline.jsonc index bc821020bdd46..8ae915b0b88aa 100644 --- a/tests/baselines/reference/findAllReferencesJSDocFunctionThis.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJSDocFunctionThis.baseline.jsonc @@ -1,35 +1,25 @@ +// === findAllReferences === // === /tests/cases/fourslash/Foo.js === // /** @type {function (this: string, string): string} */ // var f = function (s) { return /*FIND ALL REFS*/[|this|] + s; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/Foo.js", - "kind": "var", - "name": "this", - "textSpan": { - "start": 85, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/Foo.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/Foo.js === + // /** @type {function (this: string, string): string} */ + // var f = function (s) { return /*FIND ALL REFS*/[|this|] + s; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJsDocTypeLiteral.baseline.jsonc b/tests/baselines/reference/findAllReferencesJsDocTypeLiteral.baseline.jsonc index da0e4c7cc6a29..d6d6f95adf5bb 100644 --- a/tests/baselines/reference/findAllReferencesJsDocTypeLiteral.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJsDocTypeLiteral.baseline.jsonc @@ -1,88 +1,74 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.js === // /** // * @param {object} o - very important! // * @param {string} o.x - a thing, its ok // * @param {number} o.y - another thing // * @param {Object} o.nested - very nested -// * @param {boolean} o.nested./*FIND ALL REFS*/[|great|] - much greatness +// * @param {boolean} o.nested./*FIND ALL REFS*/[|{| isDefinition: true |}great|] - much greatness // * @param {number} o.nested.times - twice? probably!?? // */ // function f(o) { return o.nested.[|great|]; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "property", - "name": "(property) great: boolean", - "textSpan": { - "start": 194, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "great", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 168, - "length": 52 - } - }, - "references": [ - { - "textSpan": { - "start": 194, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 309, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // /** + // * @param {object} o - very important! + // * @param {string} o.x - a thing, its ok + // * @param {number} o.y - another thing + // * @param {Object} o.nested - very nested + // * <|@param {boolean} o.nested./*FIND ALL REFS*/[|great|] - much greatness + // * |>@param {number} o.nested.times - twice? probably!?? + // */ + // function f(o) { return o.nested.great; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) great: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "great", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.js === // /** // * @param {object} o - very important! @@ -94,74 +80,58 @@ // */ // function f(o) { return o.nested./*FIND ALL REFS*/[|great|]; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "property", - "name": "(property) great: boolean", - "textSpan": { - "start": 194, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "great", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 168, - "length": 52 - } - }, - "references": [ - { - "textSpan": { - "start": 194, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 309, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // /** + // * @param {object} o - very important! + // * @param {string} o.x - a thing, its ok + // * @param {number} o.y - another thing + // * @param {Object} o.nested - very nested + // * <|@param {boolean} o.nested.[|great|] - much greatness + // * |>@param {number} o.nested.times - twice? probably!?? + // */ + // function f(o) { return o.nested./*FIND ALL REFS*/great; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) great: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "great", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJsOverloadedFunctionParameter.baseline.jsonc b/tests/baselines/reference/findAllReferencesJsOverloadedFunctionParameter.baseline.jsonc index 0b985c4cb6c89..c492ad835fe23 100644 --- a/tests/baselines/reference/findAllReferencesJsOverloadedFunctionParameter.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJsOverloadedFunctionParameter.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.js === // /** // * @overload @@ -11,85 +12,68 @@ // * @param {unknown} [|x|] // * @returns {unknown} // */ -// function foo([|x|]/*FIND ALL REFS*/) { +// function foo([|{| isWriteAccess: true, isDefinition: true |}x|]/*FIND ALL REFS*/) { // return [|x|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "parameter", - "name": "(parameter) x: unknown", - "textSpan": { - "start": 183, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unknown", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 141, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 183, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 197, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // /** + // * @overload + // * @param {number} x + // * @returns {number} + // * + // * @overload + // * @param {string} x + // * @returns {string} + // * + // * @param {unknown} x + // * @returns {unknown} + // */ + // function foo([|x|]/*FIND ALL REFS*/) { + // return x; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: unknown", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unknown", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJsRequireDestructuring.baseline.jsonc b/tests/baselines/reference/findAllReferencesJsRequireDestructuring.baseline.jsonc index fdcf166fff4f4..fdc1de646b8dd 100644 --- a/tests/baselines/reference/findAllReferencesJsRequireDestructuring.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJsRequireDestructuring.baseline.jsonc @@ -1,87 +1,58 @@ -// === /tests/cases/fourslash/bar.js === -// const { /*FIND ALL REFS*/[|foo|]: bar } = require('./foo'); - +// === findAllReferences === // === /tests/cases/fourslash/foo.js === // module.exports = { -// [|foo|]: '1' +// <|[|{| isWriteAccess: true |}foo|]: '1'|> // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "property", - "name": "(property) foo: string", - "textSpan": { - "start": 23, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 23, - "length": 8 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/bar.js", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": false - } +// === /tests/cases/fourslash/bar.js === +// <|const { /*FIND ALL REFS*/[|foo|]: bar } = require('./foo');|> + + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // module.exports = { + // <|[|foo|]: '1'|> + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesJsRequireDestructuring1.baseline.jsonc b/tests/baselines/reference/findAllReferencesJsRequireDestructuring1.baseline.jsonc index 62f8248df6648..7bdbf5320495e 100644 --- a/tests/baselines/reference/findAllReferencesJsRequireDestructuring1.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesJsRequireDestructuring1.baseline.jsonc @@ -1,85 +1,54 @@ +// === findAllReferences === +// === /X.js === +// module.exports = { <|[|{| isWriteAccess: true |}x|]: 1|> }; + // === /Y.js === -// const { /*FIND ALL REFS*/[|x|]: { y } } = require("./X"); +// <|const { /*FIND ALL REFS*/[|x|]: { y } } = require("./X");|> -// === /X.js === -// module.exports = { [|x|]: 1 }; + // === Definitions === + // === /X.js === + // module.exports = { <|[|x|]: 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/X.js", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 19, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/X.js", - "contextSpan": { - "start": 19, - "length": 4 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/Y.js", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesLinkTag1.baseline.jsonc b/tests/baselines/reference/findAllReferencesLinkTag1.baseline.jsonc index 1752bcb37f42e..4e48274a0b2bd 100644 --- a/tests/baselines/reference/findAllReferencesLinkTag1.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesLinkTag1.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { -// [|m|]/*FIND ALL REFS*/() { } +// <|[|{| isWriteAccess: true, isDefinition: true |}m|]/*FIND ALL REFS*/() { }|> // n = 1 // static s() { } // /** @@ -63,167 +64,139 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "method", - "name": "(method) C.m(): void", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "m", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 14, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 73, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 192, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 220, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // <|[|m|]/*FIND ALL REFS*/() { }|> + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.m(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "m", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } -// [|n|]/*FIND ALL REFS*/ = 1 +// <|[|{| isWriteAccess: true, isDefinition: true |}n|]/*FIND ALL REFS*/ = 1|> // static s() { } // /** // * {@link m} @@ -285,160 +258,132 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "property", - "name": "(property) C.n: number", - "textSpan": { - "start": 26, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 26, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 265, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 281, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 300, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 318, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 337, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 355, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 384, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 412, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // <|[|n|]/*FIND ALL REFS*/ = 1|> + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } // n = 1 -// static [|s|]/*FIND ALL REFS*/() { } +// <|static [|{| isWriteAccess: true, isDefinition: true |}s|]/*FIND ALL REFS*/() { }|> // /** // * {@link m} // * @see {m} @@ -499,127 +444,135 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "method", - "name": "(method) C.s(): void", - "textSpan": { - "start": 43, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 36, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 36, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 457, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 473, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 492, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 510, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // n = 1 + // <|static [|s|]/*FIND ALL REFS*/() { }|> + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.s(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } @@ -657,7 +610,7 @@ // } // // interface I { -// [|a|]/*FIND ALL REFS*/() +// <|[|{| isDefinition: true |}a|]/*FIND ALL REFS*/()|> // b: 1 // /** // * {@link [|a|]} @@ -685,145 +638,135 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "method", - "name": "(method) I.a(): any", - "textSpan": { - "start": 554, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 554, - "length": 3 - } - }, - "references": [ - { - "textSpan": { - "start": 554, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 554, - "length": 3 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 589, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 605, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 624, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 642, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 661, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 679, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // <|[|a|]/*FIND ALL REFS*/()|> + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.a(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } @@ -862,7 +805,7 @@ // // interface I { // a() -// [|b|]/*FIND ALL REFS*/: 1 +// <|[|{| isDefinition: true |}b|]/*FIND ALL REFS*/: 1|> // /** // * {@link a} // * @see {a} @@ -889,119 +832,127 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "property", - "name": "(property) I.b: 1", - "textSpan": { - "start": 562, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 562, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 562, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 562, - "length": 4 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 720, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 736, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 755, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 773, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // a() + // <|[|b|]/*FIND ALL REFS*/: 1|> + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.b: 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } @@ -1064,106 +1015,132 @@ // function ref() { } // /** @see {[|r2|]} */ // function d3() { } -// function [|r2|]/*FIND ALL REFS*/() { } +// <|function [|{| isWriteAccess: true, isDefinition: true |}r2|]/*FIND ALL REFS*/() { }|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "local function", - "name": "(local function) r2(): void", - "textSpan": { - "start": 916, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "r2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 907, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 830, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 874, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 916, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 907, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // interface I { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // <|function [|r2|]/*FIND ALL REFS*/() { }|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) r2(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "r2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === -// class [|C|]/*FIND ALL REFS*/ { +// <|class [|{| isWriteAccess: true, isDefinition: true |}C|]/*FIND ALL REFS*/ { // m() { } // n = 1 // static s() { } @@ -1196,7 +1173,7 @@ // * @see {[|C|].s} // */ // r() { } -// } +// }|> // // interface I { // a() @@ -1227,181 +1204,99 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 534 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 0, - "length": 534 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 106, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 143, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 161, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 208, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 298, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 316, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 335, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 353, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 372, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 400, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 490, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 508, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // <|class [|C|]/*FIND ALL REFS*/ { + // m() { } + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // }|> + // + // interface I { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // } + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === // class C { // m() { } @@ -1438,7 +1333,7 @@ // r() { } // } // -// interface [|I|]/*FIND ALL REFS*/ { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}I|]/*FIND ALL REFS*/ { // a() // b: 1 // /** @@ -1457,7 +1352,7 @@ // * @see {[|I|].b} // */ // d() -// } +// }|> // // function nestor() { // /** {@link r2} */ @@ -1467,105 +1362,92 @@ // function r2() { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 546, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 536, - "length": 257 - } - }, - "references": [ - { - "textSpan": { - "start": 546, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "contextSpan": { - "start": 536, - "length": 257 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 622, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 640, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 659, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 677, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 753, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 771, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag1.ts === + // class C { + // m() { } + // n = 1 + // static s() { } + // /** + // * {@link m} + // * @see {m} + // * {@link C.m} + // * @see {C.m} + // * {@link C#m} + // * @see {C#m} + // * {@link C.prototype.m} + // * @see {C.prototype.m} + // */ + // p() { } + // /** + // * {@link n} + // * @see {n} + // * {@link C.n} + // * @see {C.n} + // * {@link C#n} + // * @see {C#n} + // * {@link C.prototype.n} + // * @see {C.prototype.n} + // */ + // q() { } + // /** + // * {@link s} + // * @see {s} + // * {@link C.s} + // * @see {C.s} + // */ + // r() { } + // } + // + // <|interface [|I|]/*FIND ALL REFS*/ { + // a() + // b: 1 + // /** + // * {@link a} + // * @see {a} + // * {@link I.a} + // * @see {I.a} + // * {@link I#a} + // * @see {I#a} + // */ + // c() + // /** + // * {@link b} + // * @see {b} + // * {@link I.b} + // * @see {I.b} + // */ + // d() + // }|> + // + // function nestor() { + // /** {@link r2} */ + // function ref() { } + // /** @see {r2} */ + // function d3() { } + // function r2() { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesLinkTag2.baseline.jsonc b/tests/baselines/reference/findAllReferencesLinkTag2.baseline.jsonc index d61d13b730ebe..87aa64c4e5da9 100644 --- a/tests/baselines/reference/findAllReferencesLinkTag2.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesLinkTag2.baseline.jsonc @@ -1,10 +1,11 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === // namespace NPR { // export class Consider { // This = class { // show() { } // } -// [|m|]/*FIND ALL REFS*/() { } +// <|[|{| isWriteAccess: true, isDefinition: true |}m|]/*FIND ALL REFS*/() { }|> // } // /** // * @see {Consider.prototype.[|m|]} @@ -26,122 +27,111 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "kind": "method", - "name": "(method) NPR.Consider.m(): void", - "textSpan": { - "start": 108, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "m", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "contextSpan": { - "start": 108, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 162, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === + // namespace NPR { + // export class Consider { + // This = class { + // show() { } + // } + // <|[|m|]/*FIND ALL REFS*/() { }|> + // } + // /** + // * @see {Consider.prototype.m} + // * {@link Consider#m} + // * @see {Consider#This#show} + // * {@link Consider.This.show} + // * @see {NPR.Consider#This#show} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@link NPR.Consider#This#show hello hello} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) NPR.Consider.m(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "m", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === // namespace NPR { // export class Consider { // This = class { -// [|show|]/*FIND ALL REFS*/() { } +// <|[|{| isWriteAccess: true, isDefinition: true |}show|]/*FIND ALL REFS*/() { }|> // } // m() { } // } @@ -165,169 +155,104 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "kind": "method", - "name": "(method) (Anonymous class).show(): void", - "textSpan": { - "start": 79, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(Anonymous class)", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "show", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 79, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "contextSpan": { - "start": 79, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 218, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 252, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 289, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 327, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 428, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 506, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 552, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 645, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === + // namespace NPR { + // export class Consider { + // This = class { + // <|[|show|]/*FIND ALL REFS*/() { }|> + // } + // m() { } + // } + // /** + // * @see {Consider.prototype.m} + // * {@link Consider#m} + // * @see {Consider#This#show} + // * {@link Consider.This.show} + // * @see {NPR.Consider#This#show} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@link NPR.Consider#This#show hello hello} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) (Anonymous class).show(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(Anonymous class)", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "show", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === // namespace NPR { // export class Consider { -// [|This|]/*FIND ALL REFS*/ = class { +// <|[|{| isWriteAccess: true, isDefinition: true |}This|]/*FIND ALL REFS*/ = class { // show() { } -// } +// }|> // m() { } // } // /** @@ -350,197 +275,114 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "kind": "property", - "name": "(property) NPR.Consider.This: typeof (Anonymous class)", - "textSpan": { - "start": 52, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "This", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(Anonymous class)", - "kind": "className" - } - ], - "contextSpan": { - "start": 52, - "length": 47 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "contextSpan": { - "start": 52, - "length": 47 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 213, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 247, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 284, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 322, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 359, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 423, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 501, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 547, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 580, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 640, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === + // namespace NPR { + // export class Consider { + // <|[|This|]/*FIND ALL REFS*/ = class { + // show() { } + // }|> + // m() { } + // } + // /** + // * @see {Consider.prototype.m} + // * {@link Consider#m} + // * @see {Consider#This#show} + // * {@link Consider.This.show} + // * @see {NPR.Consider#This#show} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@link NPR.Consider#This#show hello hello} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) NPR.Consider.This: typeof (Anonymous class)", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "This", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(Anonymous class)", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === // namespace NPR { -// export class [|Consider|]/*FIND ALL REFS*/ { +// <|export class [|{| isWriteAccess: true, isDefinition: true |}Consider|]/*FIND ALL REFS*/ { // This = class { // show() { } // } // m() { } -// } +// }|> // /** // * @see {[|Consider|].prototype.m} // * {@link [|Consider|]#m} @@ -561,173 +403,72 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "kind": "class", - "name": "class NPR.Consider", - "textSpan": { - "start": 33, - "length": 8 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - } - ], - "contextSpan": { - "start": 20, - "length": 101 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "contextSpan": { - "start": 20, - "length": 101 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 143, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 179, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 204, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 238, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 275, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 350, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 414, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 492, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 538, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 571, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 631, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === + // namespace NPR { + // <|export class [|Consider|]/*FIND ALL REFS*/ { + // This = class { + // show() { } + // } + // m() { } + // }|> + // /** + // * @see {Consider.prototype.m} + // * {@link Consider#m} + // * @see {Consider#This#show} + // * {@link Consider.This.show} + // * @see {NPR.Consider#This#show} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@link NPR.Consider#This#show hello hello} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class NPR.Consider", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === -// namespace [|NPR|]/*FIND ALL REFS*/ { +// <|namespace [|{| isWriteAccess: true, isDefinition: true |}NPR|]/*FIND ALL REFS*/ { // export class Consider { // This = class { // show() { } @@ -745,7 +486,7 @@ // * @see {[|NPR|].Consider.This.show} // */ // export function ref() { } -// } +// }|> // /** // * {@link [|NPR|].Consider#This#show hello hello} // * {@link [|NPR|].Consider.This#show} @@ -754,123 +495,55 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "kind": "module", - "name": "namespace NPR", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 473 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "contextSpan": { - "start": 0, - "length": 473 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 271, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 309, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 346, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 410, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 488, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 567, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 627, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag2.ts === + // <|namespace [|NPR|]/*FIND ALL REFS*/ { + // export class Consider { + // This = class { + // show() { } + // } + // m() { } + // } + // /** + // * @see {Consider.prototype.m} + // * {@link Consider#m} + // * @see {Consider#This#show} + // * {@link Consider.This.show} + // * @see {NPR.Consider#This#show} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function ref() { } + // }|> + // /** + // * {@link NPR.Consider#This#show hello hello} + // * {@link NPR.Consider.This#show} + // * @see {NPR.Consider#This.show} # doesn't parse trailing . + // * @see {NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace NPR", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesLinkTag3.baseline.jsonc b/tests/baselines/reference/findAllReferencesLinkTag3.baseline.jsonc index 81777f237c132..9c639d7a2f440 100644 --- a/tests/baselines/reference/findAllReferencesLinkTag3.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesLinkTag3.baseline.jsonc @@ -1,10 +1,11 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === // namespace NPR { // export class Consider { // This = class { // show() { } // } -// [|m|]/*FIND ALL REFS*/() { } +// <|[|{| isWriteAccess: true, isDefinition: true |}m|]/*FIND ALL REFS*/() { }|> // } // /** // * {@linkcode Consider.prototype.[|m|]} @@ -26,122 +27,111 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "kind": "method", - "name": "(method) NPR.Consider.m(): void", - "textSpan": { - "start": 108, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "m", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "contextSpan": { - "start": 108, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 167, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 198, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === + // namespace NPR { + // export class Consider { + // This = class { + // show() { } + // } + // <|[|m|]/*FIND ALL REFS*/() { }|> + // } + // /** + // * {@linkcode Consider.prototype.m} + // * {@linkplain Consider#m} + // * {@linkcode Consider#This#show} + // * {@linkplain Consider.This.show} + // * {@linkcode NPR.Consider#This#show} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@linkplain NPR.Consider#This#show hello hello} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) NPR.Consider.m(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "m", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === // namespace NPR { // export class Consider { // This = class { -// [|show|]/*FIND ALL REFS*/() { } +// <|[|{| isWriteAccess: true, isDefinition: true |}show|]/*FIND ALL REFS*/() { }|> // } // m() { } // } @@ -165,169 +155,104 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "kind": "method", - "name": "(method) (Anonymous class).show(): void", - "textSpan": { - "start": 79, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(Anonymous class)", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "show", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 79, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "contextSpan": { - "start": 79, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 233, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 272, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 314, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 357, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 468, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 551, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 602, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 705, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === + // namespace NPR { + // export class Consider { + // This = class { + // <|[|show|]/*FIND ALL REFS*/() { }|> + // } + // m() { } + // } + // /** + // * {@linkcode Consider.prototype.m} + // * {@linkplain Consider#m} + // * {@linkcode Consider#This#show} + // * {@linkplain Consider.This.show} + // * {@linkcode NPR.Consider#This#show} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@linkplain NPR.Consider#This#show hello hello} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) (Anonymous class).show(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(Anonymous class)", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "show", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === // namespace NPR { // export class Consider { -// [|This|]/*FIND ALL REFS*/ = class { +// <|[|{| isWriteAccess: true, isDefinition: true |}This|]/*FIND ALL REFS*/ = class { // show() { } -// } +// }|> // m() { } // } // /** @@ -350,197 +275,114 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "kind": "property", - "name": "(property) NPR.Consider.This: typeof (Anonymous class)", - "textSpan": { - "start": 52, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "This", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(Anonymous class)", - "kind": "className" - } - ], - "contextSpan": { - "start": 52, - "length": 47 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "contextSpan": { - "start": 52, - "length": 47 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 228, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 309, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 352, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 394, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 463, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 546, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 597, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 635, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 700, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === + // namespace NPR { + // export class Consider { + // <|[|This|]/*FIND ALL REFS*/ = class { + // show() { } + // }|> + // m() { } + // } + // /** + // * {@linkcode Consider.prototype.m} + // * {@linkplain Consider#m} + // * {@linkcode Consider#This#show} + // * {@linkplain Consider.This.show} + // * {@linkcode NPR.Consider#This#show} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@linkplain NPR.Consider#This#show hello hello} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) NPR.Consider.This: typeof (Anonymous class)", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "This", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(Anonymous class)", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === // namespace NPR { -// export class [|Consider|]/*FIND ALL REFS*/ { +// <|export class [|{| isWriteAccess: true, isDefinition: true |}Consider|]/*FIND ALL REFS*/ { // This = class { // show() { } // } // m() { } -// } +// }|> // /** // * {@linkcode [|Consider|].prototype.m} // * {@linkplain [|Consider|]#m} @@ -561,173 +403,72 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "kind": "class", - "name": "class NPR.Consider", - "textSpan": { - "start": 33, - "length": 8 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Consider", - "kind": "className" - } - ], - "contextSpan": { - "start": 20, - "length": 101 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "contextSpan": { - "start": 20, - "length": 101 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 148, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 189, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 219, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 258, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 300, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 343, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 385, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 454, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 537, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 588, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 626, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 691, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === + // namespace NPR { + // <|export class [|Consider|]/*FIND ALL REFS*/ { + // This = class { + // show() { } + // } + // m() { } + // }|> + // /** + // * {@linkcode Consider.prototype.m} + // * {@linkplain Consider#m} + // * {@linkcode Consider#This#show} + // * {@linkplain Consider.This.show} + // * {@linkcode NPR.Consider#This#show} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function ref() { } + // } + // /** + // * {@linkplain NPR.Consider#This#show hello hello} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class NPR.Consider", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Consider", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === -// namespace [|NPR|]/*FIND ALL REFS*/ { +// <|namespace [|{| isWriteAccess: true, isDefinition: true |}NPR|]/*FIND ALL REFS*/ { // export class Consider { // This = class { // show() { } @@ -745,7 +486,7 @@ // * {@linkcode [|NPR|].Consider.This.show} // */ // export function ref() { } -// } +// }|> // /** // * {@linkplain [|NPR|].Consider#This#show hello hello} // * {@linkplain [|NPR|].Consider.This#show} @@ -754,123 +495,55 @@ // */ // export function outerref() { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "kind": "module", - "name": "namespace NPR", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NPR", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 513 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "contextSpan": { - "start": 0, - "length": 513 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 296, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 339, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 381, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 450, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 533, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 584, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 622, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 687, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesLinkTag3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesLinkTag3.ts === + // <|namespace [|NPR|]/*FIND ALL REFS*/ { + // export class Consider { + // This = class { + // show() { } + // } + // m() { } + // } + // /** + // * {@linkcode Consider.prototype.m} + // * {@linkplain Consider#m} + // * {@linkcode Consider#This#show} + // * {@linkplain Consider.This.show} + // * {@linkcode NPR.Consider#This#show} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function ref() { } + // }|> + // /** + // * {@linkplain NPR.Consider#This#show hello hello} + // * {@linkplain NPR.Consider.This#show} + // * {@linkcode NPR.Consider#This.show} # doesn't parse trailing . + // * {@linkcode NPR.Consider.This.show} + // */ + // export function outerref() { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace NPR", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NPR", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesNonExistentExportBinding.baseline.jsonc b/tests/baselines/reference/findAllReferencesNonExistentExportBinding.baseline.jsonc index 1ece1a033363c..01c9c26c7e3e6 100644 --- a/tests/baselines/reference/findAllReferencesNonExistentExportBinding.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesNonExistentExportBinding.baseline.jsonc @@ -1,100 +1,59 @@ +// === findAllReferences === // === /bar.ts === -// import { [|Foo|]/*FIND ALL REFS*/ } from "./foo"; +// <|import { [|{| defId: 0, isWriteAccess: true, isDefinition: true |}Foo|]/*FIND ALL REFS*/ } from "./foo";|> // === /foo.ts === -// export { [|Foo|] } +// <|export { [|{| defId: 1, isWriteAccess: true |}Foo|] }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/bar.ts", - "kind": "alias", - "name": "import Foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/bar.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /bar.ts === + // <|import { [|{| defId: 0 |}Foo|]/*FIND ALL REFS*/ } from "./foo";|> + + // === /foo.ts === + // <|export { [|{| defId: 1 |}Foo|] }|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "export Foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export Foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesOfConstructor.baseline.jsonc b/tests/baselines/reference/findAllReferencesOfConstructor.baseline.jsonc index 5dc8f1a37b1a4..708648bf98ed8 100644 --- a/tests/baselines/reference/findAllReferencesOfConstructor.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesOfConstructor.baseline.jsonc @@ -1,31 +1,32 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // export class C { -// /*FIND ALL REFS*/[|constructor|](n: number); -// [|constructor|](); -// [|constructor|](n?: number){} +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|](n: number);|> +// <|[|{| defId: 0, isDefinition: true |}constructor|]();|> +// <|[|{| defId: 0, isDefinition: true |}constructor|](n?: number){}|> // static f() { // this.f(); -// new [|this|](); +// new [|{| defId: 0 |}this|](); // } // } -// new [|C|](); +// new [|{| defId: 0 |}C|](); // const D = C; // new D(); -// === /tests/cases/fourslash/b.ts === -// import { C } from "./a"; -// new [|C|](); - // === /tests/cases/fourslash/d.ts === // import * as a from "./a"; -// new a.[|C|](); -// class d extends a.C { constructor() { [|super|](); } +// new a.[|{| defId: 0 |}C|](); +// class d extends a.C { constructor() { [|{| defId: 0 |}super|](); } + +// === /tests/cases/fourslash/b.ts === +// import { C } from "./a"; +// new [|{| defId: 1 |}C|](); // === /tests/cases/fourslash/c.ts === // import { C } from "./a"; // class D extends C { // constructor() { -// [|super|](); +// [|{| defId: 2 |}super|](); // super.method(); // } // method() { super(); } @@ -34,293 +35,200 @@ // constructor() { super(); } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 156 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 21, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 49, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 68, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 68, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 141, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 161, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 0 |}C|] { + // /*FIND ALL REFS*/constructor(n: number); + // constructor(); + // constructor(n?: number){} + // static f() { + // this.f(); + // new this(); + // } + // }|> + // new C(); + // const D = C; + // new D(); + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}C|] } from "./a";|> + // new C(); + + // === /tests/cases/fourslash/c.ts === + // <|import { [|{| defId: 2 |}C|] } from "./a";|> + // class D extends C { + // constructor() { + // super(); + // super.method(); + // } + // method() { super(); } + // } + // class E implements C { + // constructor() { super(); } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // export class C { -// [|constructor|](n: number); -// /*FIND ALL REFS*/[|constructor|](); -// [|constructor|](n?: number){} +// <|[|{| defId: 0, isDefinition: true |}constructor|](n: number);|> +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|]();|> +// <|[|{| defId: 0, isDefinition: true |}constructor|](n?: number){}|> // static f() { // this.f(); -// new [|this|](); +// new [|{| defId: 0 |}this|](); // } // } -// new [|C|](); +// new [|{| defId: 0 |}C|](); // const D = C; // new D(); -// === /tests/cases/fourslash/b.ts === -// import { C } from "./a"; -// new [|C|](); - // === /tests/cases/fourslash/d.ts === // import * as a from "./a"; -// new a.[|C|](); -// class d extends a.C { constructor() { [|super|](); } +// new a.[|{| defId: 0 |}C|](); +// class d extends a.C { constructor() { [|{| defId: 0 |}super|](); } + +// === /tests/cases/fourslash/b.ts === +// import { C } from "./a"; +// new [|{| defId: 1 |}C|](); // === /tests/cases/fourslash/c.ts === // import { C } from "./a"; // class D extends C { // constructor() { -// [|super|](); +// [|{| defId: 2 |}super|](); // super.method(); // } // method() { super(); } @@ -329,293 +237,200 @@ // constructor() { super(); } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 156 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 21, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 49, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 68, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 68, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 141, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 161, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 0 |}C|] { + // constructor(n: number); + // /*FIND ALL REFS*/constructor(); + // constructor(n?: number){} + // static f() { + // this.f(); + // new this(); + // } + // }|> + // new C(); + // const D = C; + // new D(); + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}C|] } from "./a";|> + // new C(); + + // === /tests/cases/fourslash/c.ts === + // <|import { [|{| defId: 2 |}C|] } from "./a";|> + // class D extends C { + // constructor() { + // super(); + // super.method(); + // } + // method() { super(); } + // } + // class E implements C { + // constructor() { super(); } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // export class C { -// [|constructor|](n: number); -// [|constructor|](); -// /*FIND ALL REFS*/[|constructor|](n?: number){} +// <|[|{| defId: 0, isDefinition: true |}constructor|](n: number);|> +// <|[|{| defId: 0, isDefinition: true |}constructor|]();|> +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|](n?: number){}|> // static f() { // this.f(); -// new [|this|](); +// new [|{| defId: 0 |}this|](); // } // } -// new [|C|](); +// new [|{| defId: 0 |}C|](); // const D = C; // new D(); -// === /tests/cases/fourslash/b.ts === -// import { C } from "./a"; -// new [|C|](); - // === /tests/cases/fourslash/d.ts === // import * as a from "./a"; -// new a.[|C|](); -// class d extends a.C { constructor() { [|super|](); } +// new a.[|{| defId: 0 |}C|](); +// class d extends a.C { constructor() { [|{| defId: 0 |}super|](); } + +// === /tests/cases/fourslash/b.ts === +// import { C } from "./a"; +// new [|{| defId: 1 |}C|](); // === /tests/cases/fourslash/c.ts === // import { C } from "./a"; // class D extends C { // constructor() { -// [|super|](); +// [|{| defId: 2 |}super|](); // super.method(); // } // method() { super(); } @@ -624,261 +439,165 @@ // constructor() { super(); } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 156 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 21, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 49, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 68, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 68, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 141, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/d.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 161, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 0 |}C|] { + // constructor(n: number); + // constructor(); + // /*FIND ALL REFS*/constructor(n?: number){} + // static f() { + // this.f(); + // new this(); + // } + // }|> + // new C(); + // const D = C; + // new D(); + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}C|] } from "./a";|> + // new C(); + + // === /tests/cases/fourslash/c.ts === + // <|import { [|{| defId: 2 |}C|] } from "./a";|> + // class D extends C { + // constructor() { + // super(); + // super.method(); + // } + // method() { super(); } + // } + // class E implements C { + // constructor() { super(); } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesOfConstructor_badOverload.baseline.jsonc b/tests/baselines/reference/findAllReferencesOfConstructor_badOverload.baseline.jsonc index e5b9f4620315d..98bc12cad0274 100644 --- a/tests/baselines/reference/findAllReferencesOfConstructor_badOverload.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesOfConstructor_badOverload.baseline.jsonc @@ -1,135 +1,77 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts === // class C { -// /*FIND ALL REFS*/[|constructor|](n: number); -// [|constructor|](){} +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|](n: number);|> +// <|[|{| isDefinition: true |}constructor|](){}|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 59 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 42, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "contextSpan": { - "start": 42, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts === + // <|class [|C|] { + // /*FIND ALL REFS*/constructor(n: number); + // constructor(){} + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts === // class C { -// [|constructor|](n: number); -// /*FIND ALL REFS*/[|constructor|](){} +// <|[|{| isDefinition: true |}constructor|](n: number);|> +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|](){}|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 59 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 42, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts", - "contextSpan": { - "start": 42, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllReferencesOfConstructor_badOverload.ts === + // <|class [|C|] { + // constructor(n: number); + // /*FIND ALL REFS*/constructor(){} + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesOfJsonModule.baseline.jsonc b/tests/baselines/reference/findAllReferencesOfJsonModule.baseline.jsonc index 72461797829fa..b8dd08309478e 100644 --- a/tests/baselines/reference/findAllReferencesOfJsonModule.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesOfJsonModule.baseline.jsonc @@ -1,183 +1,105 @@ +// === findAllReferences === // === /foo.ts === -// /*FIND ALL REFS*/import [|settings|] from "./settings.json"; +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}settings|] from "./settings.json";|> // [|settings|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import settings", - "textSpan": { - "start": 7, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "settings", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 8 - }, - "fileName": "/foo.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /foo.ts === + // /*FIND ALL REFS*/<|import [|settings|] from "./settings.json";|> + // settings; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import settings", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "settings", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === -// import /*FIND ALL REFS*/[|settings|] from "./settings.json"; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}settings|] from "./settings.json";|> // [|settings|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import settings", - "textSpan": { - "start": 7, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "settings", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 8 - }, - "fileName": "/foo.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /foo.ts === + // <|import /*FIND ALL REFS*/[|settings|] from "./settings.json";|> + // settings; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import settings", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "settings", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === -// import [|settings|] from "./settings.json"; +// <|import [|{| isWriteAccess: true |}settings|] from "./settings.json";|> // /*FIND ALL REFS*/[|settings|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import settings", - "textSpan": { - "start": 7, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "settings", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 40, - "length": 8 - }, - "fileName": "/foo.ts", - "isWriteAccess": false - } + // === Definitions === + // === /foo.ts === + // <|import [|settings|] from "./settings.json";|> + // /*FIND ALL REFS*/settings; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import settings", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "settings", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesTripleSlash.baseline.jsonc b/tests/baselines/reference/findAllReferencesTripleSlash.baseline.jsonc index dbe97e020a506..9fad7bae46bc7 100644 --- a/tests/baselines/reference/findAllReferencesTripleSlash.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesTripleSlash.baseline.jsonc @@ -1,95 +1,61 @@ +// === findAllReferences === +// === /a.ts === +// /// +// /// + // === /c.js === // require([|"./b"|]); // require("globals"); -// === /a.ts === -// /// -// /// + // === Definitions === + // === /a.ts === + // /// + // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "string", - "name": "b.ts", - "textSpan": { - "start": 21, - "length": 4 - }, - "displayParts": [ - { - "text": "\"b.ts\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 4 - }, - "fileName": "/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 5 - }, - "fileName": "/c.js", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "string", + "name": "b.ts", + "displayParts": [ + { + "text": "\"b.ts\"", + "kind": "stringLiteral" + } ] - } -] + } + ] -// === /c.js === -// require("./b"); -// require([|"globals"|]); + +// === findAllReferences === // === /a.ts === // /// // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "string", - "name": "globals", - "textSpan": { - "start": 52, - "length": 7 - }, - "displayParts": [ - { - "text": "\"globals\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 7 - }, - "fileName": "/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 9 - }, - "fileName": "/c.js", - "isWriteAccess": false - } +// === /c.js === +// require("./b"); +// require([|"globals"|]); + + // === Definitions === + // === /a.ts === + // /// + // /// + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "string", + "name": "globals", + "displayParts": [ + { + "text": "\"globals\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesUmdModuleAsGlobalConst.baseline.jsonc b/tests/baselines/reference/findAllReferencesUmdModuleAsGlobalConst.baseline.jsonc index b39b694c06233..8c517bb1499ff 100644 --- a/tests/baselines/reference/findAllReferencesUmdModuleAsGlobalConst.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesUmdModuleAsGlobalConst.baseline.jsonc @@ -1,421 +1,279 @@ +// === findAllReferences === +// === /node_modules/@types/three/index.d.ts === +// export * from "./three-core"; +// <|export as namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}THREE|];|> + // === /typings/global.d.ts === -// import * as _THREE from '[|three|]'; +// <|import * as _THREE from '[|three|]';|> // declare global { -// const [|THREE|]: typeof _THREE; +// <|const [|{| isWriteAccess: true |}THREE|]: typeof _THREE;|> // } // === /src/index.ts === // export const a = {}; // let v = new [|THREE|].Vector2(); -// === /node_modules/@types/three/index.d.ts === -// export * from "./three-core"; -// export as namespace /*FIND ALL REFS*/[|THREE|]; + // === Definitions === + // === /node_modules/@types/three/index.d.ts === + // [|export * from "./three-core"; + // export as namespace /*FIND ALL REFS*/THREE;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/@types/three/index.d.ts", - "kind": "var", - "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", - "textSpan": { - "start": 0, - "length": 56 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/node_modules/@types/three/index\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 5 - }, - "fileName": "/node_modules/@types/three/index.d.ts", - "contextSpan": { - "start": 30, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 25, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 60, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 54, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 33, - "length": 5 - }, - "fileName": "/src/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/node_modules/@types/three/index\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /node_modules/@types/three/index.d.ts === +// export * from "./three-core"; +// <|export as namespace [|{| isWriteAccess: true |}THREE|];|> // === /typings/global.d.ts === -// import * as _THREE from '/*FIND ALL REFS*/[|three|]'; +// <|import * as _THREE from '/*FIND ALL REFS*/[|three|]';|> // declare global { -// const [|THREE|]: typeof _THREE; +// <|const [|{| isWriteAccess: true |}THREE|]: typeof _THREE;|> // } // === /src/index.ts === // export const a = {}; // let v = new [|THREE|].Vector2(); -// === /node_modules/@types/three/index.d.ts === -// export * from "./three-core"; -// export as namespace [|THREE|]; + // === Definitions === + // === /node_modules/@types/three/index.d.ts === + // [|export * from "./three-core"; + // export as namespace THREE;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/@types/three/index.d.ts", - "kind": "var", - "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", - "textSpan": { - "start": 0, - "length": 56 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/node_modules/@types/three/index\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 5 - }, - "fileName": "/node_modules/@types/three/index.d.ts", - "contextSpan": { - "start": 30, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 60, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 54, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 5 - }, - "fileName": "/src/index.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/node_modules/@types/three/index\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /node_modules/@types/three/index.d.ts === +// export * from "./three-core"; +// <|export as namespace [|{| isWriteAccess: true |}THREE|];|> // === /typings/global.d.ts === -// import * as _THREE from '[|three|]'; +// <|import * as _THREE from '[|three|]';|> // declare global { -// const /*FIND ALL REFS*/[|THREE|]: typeof _THREE; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}THREE|]: typeof _THREE;|> // } // === /src/index.ts === // export const a = {}; // let v = new [|THREE|].Vector2(); -// === /node_modules/@types/three/index.d.ts === -// export * from "./three-core"; -// export as namespace [|THREE|]; + // === Definitions === + // === /node_modules/@types/three/index.d.ts === + // [|export * from "./three-core"; + // export as namespace THREE;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/@types/three/index.d.ts", - "kind": "var", - "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", - "textSpan": { - "start": 0, - "length": 56 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "THREE", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/node_modules/@types/three/index\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 5 - }, - "fileName": "/node_modules/@types/three/index.d.ts", - "contextSpan": { - "start": 30, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 25, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 60, - "length": 5 - }, - "fileName": "/typings/global.d.ts", - "contextSpan": { - "start": 54, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 5 - }, - "fileName": "/src/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "module THREE\nvar THREE: typeof import(\"/node_modules/@types/three/index\")", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "THREE", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/node_modules/@types/three/index\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllReferencesUndefined.baseline.jsonc b/tests/baselines/reference/findAllReferencesUndefined.baseline.jsonc index 2ccf118f8435a..be72b6af89753 100644 --- a/tests/baselines/reference/findAllReferencesUndefined.baseline.jsonc +++ b/tests/baselines/reference/findAllReferencesUndefined.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /a.ts === // /*FIND ALL REFS*/[|undefined|]; // @@ -6,58 +7,32 @@ // === /b.ts === // [|undefined|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var undefined", - "textSpan": { - "start": 0, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "undefined", - "kind": "propertyName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 9 - }, - "fileName": "/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 9 - }, - "fileName": "/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 9 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // /*FIND ALL REFS*/[|undefined|]; + // + // void undefined; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var undefined", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsBadImport.baseline.jsonc b/tests/baselines/reference/findAllRefsBadImport.baseline.jsonc index 0ba000293e7a1..b239dd3126372 100644 --- a/tests/baselines/reference/findAllRefsBadImport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsBadImport.baseline.jsonc @@ -1,53 +1,37 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsBadImport.ts === +// import { /*FIND ALL REFS*/ab as cd } from "doesNotExist"; + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsBadImport.ts === -// import { ab as /*FIND ALL REFS*/[|cd|] } from "doesNotExist"; +// <|import { ab as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}cd|] } from "doesNotExist";|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsBadImport.ts === + // <|import { ab as /*FIND ALL REFS*/[|cd|] } from "doesNotExist";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsBadImport.ts", - "kind": "alias", - "name": "import cd", - "textSpan": { - "start": 15, - "length": 2 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cd", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsBadImport.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import cd", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cd", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsCatchClause.baseline.jsonc b/tests/baselines/reference/findAllRefsCatchClause.baseline.jsonc index f9de422b12c81..f8d0dbfcd02cb 100644 --- a/tests/baselines/reference/findAllRefsCatchClause.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsCatchClause.baseline.jsonc @@ -1,133 +1,101 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsCatchClause.ts === // try { } -// catch (/*FIND ALL REFS*/[|err|]) { +// catch (/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}err|]) { // [|err|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "kind": "var", - "name": "var err: any", - "textSpan": { - "start": 15, - "length": 3 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "err", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsCatchClause.ts === + // try { } + // catch (/*FIND ALL REFS*/[|err|]) { + // err; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var err: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "err", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsCatchClause.ts === // try { } -// catch ([|err|]) { +// catch ([|{| isWriteAccess: true |}err|]) { // /*FIND ALL REFS*/[|err|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "kind": "var", - "name": "var err: any", - "textSpan": { - "start": 15, - "length": 3 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "err", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsCatchClause.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsCatchClause.ts === + // try { } + // catch ([|err|]) { + // /*FIND ALL REFS*/err; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var err: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "err", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsClassExpression0.baseline.jsonc b/tests/baselines/reference/findAllRefsClassExpression0.baseline.jsonc index da95bf2df1ad0..220666041b691 100644 --- a/tests/baselines/reference/findAllRefsClassExpression0.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsClassExpression0.baseline.jsonc @@ -1,783 +1,573 @@ +// === findAllReferences === +// === /a.ts === +// export = <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] { +// m() { [|{| defId: 0 |}A|]; } +// }|>; + // === /b.ts === -// import [|A|] = require("./a"); -// [|A|]; +// <|import [|{| defId: 1, isWriteAccess: true |}A|] = require("./a");|> +// [|{| defId: 1 |}A|]; -// === /a.ts === -// export = class /*FIND ALL REFS*/[|A|] { -// m() { [|A|]; } -// }; + // === Definitions === + // === /a.ts === + // export = <|class /*FIND ALL REFS*/[|{| defId: 0 |}A|] { + // m() { A; } + // }|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 15, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 9, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 9, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === /b.ts === + // <|import [|{| defId: 1 |}A|] = require("./a");|> + // A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] -// === /b.ts === -// import [|A|] = require("./a"); -// [|A|]; + +// === findAllReferences === // === /a.ts === -// export = class [|A|] { -// m() { /*FIND ALL REFS*/[|A|]; } -// }; +// export = <|class [|{| defId: 0, isWriteAccess: true |}A|] { +// m() { /*FIND ALL REFS*/[|{| defId: 0 |}A|]; } +// }|>; + +// === /b.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}A|] = require("./a");|> +// [|{| defId: 1 |}A|]; + + // === Definitions === + // === /a.ts === + // export = <|class [|{| defId: 0 |}A|] { + // m() { /*FIND ALL REFS*/A; } + // }|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 15, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 9, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 9, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false - } + // === /b.ts === + // <|import [|{| defId: 1 |}A|] = require("./a");|> + // A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|A|] = require("./a"); -// [|A|]; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] = require("./a");|> +// [|{| defId: 0 |}A|]; // === /a.ts === -// export = class [|A|] { -// m() { [|A|]; } -// }; +// export = <|class [|{| defId: 1, isWriteAccess: true |}A|] { +// m() { [|{| defId: 1 |}A|]; } +// }|>; + + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}A|] = require("./a");|> + // A; + + // === /a.ts === + // export = <|class [|{| defId: 1 |}A|] { + // m() { A; } + // }|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 15, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 9, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 9, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import [|A|] = require("./a"); -// /*FIND ALL REFS*/[|A|]; +// <|import [|{| defId: 0, isWriteAccess: true |}A|] = require("./a");|> +// /*FIND ALL REFS*/[|{| defId: 0 |}A|]; // === /a.ts === -// export = class [|A|] { -// m() { [|A|]; } -// }; +// export = <|class [|{| defId: 1, isWriteAccess: true |}A|] { +// m() { [|{| defId: 1 |}A|]; } +// }|>; + + // === Definitions === + // === /b.ts === + // <|import [|{| defId: 0 |}A|] = require("./a");|> + // /*FIND ALL REFS*/A; + + // === /a.ts === + // export = <|class [|{| defId: 1 |}A|] { + // m() { A; } + // }|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 15, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 9, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 9, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsClassExpression1.baseline.jsonc b/tests/baselines/reference/findAllRefsClassExpression1.baseline.jsonc index d38eae968ba27..9f2239de3235e 100644 --- a/tests/baselines/reference/findAllRefsClassExpression1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsClassExpression1.baseline.jsonc @@ -1,557 +1,417 @@ +// === findAllReferences === +// === /a.js === +// module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] {}|>; + // === /b.js === -// import [|A|] = require("./a"); -// [|A|]; +// <|import [|{| defId: 1, isWriteAccess: true |}A|] = require("./a");|> +// [|{| defId: 1 |}A|]; -// === /a.js === -// module.exports = class /*FIND ALL REFS*/[|A|] {}; + // === Definitions === + // === /a.js === + // module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0 |}A|] {}|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 23, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /b.js === + // <|import [|{| defId: 1 |}A|] = require("./a");|> + // A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.js === -// import /*FIND ALL REFS*/[|A|] = require("./a"); -// [|A|]; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] = require("./a");|> +// [|{| defId: 0 |}A|]; // === /a.js === -// module.exports = class [|A|] {}; +// module.exports = <|class [|{| defId: 1, isWriteAccess: true |}A|] {}|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b.js === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}A|] = require("./a");|> + // A; + + // === /a.js === + // module.exports = <|class [|{| defId: 1 |}A|] {}|>; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 23, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.js === -// import [|A|] = require("./a"); -// /*FIND ALL REFS*/[|A|]; +// <|import [|{| defId: 0, isWriteAccess: true |}A|] = require("./a");|> +// /*FIND ALL REFS*/[|{| defId: 0 |}A|]; // === /a.js === -// module.exports = class [|A|] {}; +// module.exports = <|class [|{| defId: 1, isWriteAccess: true |}A|] {}|>; + + // === Definitions === + // === /b.js === + // <|import [|{| defId: 0 |}A|] = require("./a");|> + // /*FIND ALL REFS*/A; + + // === /a.js === + // module.exports = <|class [|{| defId: 1 |}A|] {}|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 23, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsClassExpression2.baseline.jsonc b/tests/baselines/reference/findAllRefsClassExpression2.baseline.jsonc index 9fd59673e70ea..9d08a7ab72a47 100644 --- a/tests/baselines/reference/findAllRefsClassExpression2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsClassExpression2.baseline.jsonc @@ -1,569 +1,429 @@ +// === findAllReferences === // === /a.js === -// exports./*FIND ALL REFS*/[|A|] = class {}; +// <|exports./*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] = class {};|> // === /b.js === -// import { [|A|] } from "./a"; -// [|A|]; +// <|import { [|{| defId: 1, isWriteAccess: true |}A|] } from "./a";|> +// [|{| defId: 1 |}A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.js === + // <|exports./*FIND ALL REFS*/[|{| defId: 0 |}A|]|> = class {}; + + // === /b.js === + // <|import { [|{| defId: 1 |}A|] } from "./a";|> + // A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 25, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /a.js === -// exports.[|A|] = class {}; +// === findAllReferences === // === /b.js === -// import { /*FIND ALL REFS*/[|A|] } from "./a"; -// [|A|]; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] } from "./a";|> +// [|{| defId: 0 |}A|]; + +// === /a.js === +// <|exports.[|{| defId: 1, isWriteAccess: true |}A|] = class {};|> + + // === Definitions === + // === /b.js === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}A|] } from "./a";|> + // A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 25, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === /a.js === + // <|exports.[|{| defId: 1 |}A|]|> = class {}; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] -// === /a.js === -// exports.[|A|] = class {}; + +// === findAllReferences === // === /b.js === -// import { [|A|] } from "./a"; -// /*FIND ALL REFS*/[|A|]; +// <|import { [|{| defId: 0, isWriteAccess: true |}A|] } from "./a";|> +// /*FIND ALL REFS*/[|{| defId: 0 |}A|]; + +// === /a.js === +// <|exports.[|{| defId: 1, isWriteAccess: true |}A|] = class {};|> + + // === Definitions === + // === /b.js === + // <|import { [|{| defId: 0 |}A|] } from "./a";|> + // /*FIND ALL REFS*/A; + + // === /a.js === + // <|exports.[|{| defId: 1 |}A|]|> = class {}; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsClassStaticBlocks.baseline.jsonc b/tests/baselines/reference/findAllRefsClassStaticBlocks.baseline.jsonc index 10354a2c0119d..2cc95bda59feb 100644 --- a/tests/baselines/reference/findAllRefsClassStaticBlocks.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsClassStaticBlocks.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === // class ClassStaticBocks { // static x; @@ -8,38 +9,36 @@ // static {} // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "kind": "keyword", - "name": "static", - "textSpan": { - "start": 43, - "length": 6 - }, - "displayParts": [ - { - "text": "static", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === + // class ClassStaticBocks { + // static x; + // /*FIND ALL REFS*/[|static|] {} + // static y; + // static {} + // static y; + // static {} + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "static", + "displayParts": [ + { + "text": "static", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === // class ClassStaticBocks { // static x; @@ -50,38 +49,36 @@ // static {} // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "kind": "keyword", - "name": "static", - "textSpan": { - "start": 71, - "length": 6 - }, - "displayParts": [ - { - "text": "static", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 71, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === + // class ClassStaticBocks { + // static x; + // static {} + // static y; + // /*FIND ALL REFS*/[|static|] {} + // static y; + // static {} + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "static", + "displayParts": [ + { + "text": "static", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === // class ClassStaticBocks { // static x; @@ -92,34 +89,29 @@ // /*FIND ALL REFS*/[|static|] {} // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "kind": "keyword", - "name": "static", - "textSpan": { - "start": 99, - "length": 6 - }, - "displayParts": [ - { - "text": "static", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 99, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassStaticBlocks.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassStaticBlocks.ts === + // class ClassStaticBocks { + // static x; + // static {} + // static y; + // static {} + // static y; + // /*FIND ALL REFS*/[|static|] {} + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "static", + "displayParts": [ + { + "text": "static", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsClassWithStaticThisAccess.baseline.jsonc b/tests/baselines/reference/findAllRefsClassWithStaticThisAccess.baseline.jsonc index 2f1f5b60c33a6..37bb3ca3f06fb 100644 --- a/tests/baselines/reference/findAllRefsClassWithStaticThisAccess.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsClassWithStaticThisAccess.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === -// class /*FIND ALL REFS*/[|C|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}C|] { // static s() { // [|this|]; // } @@ -9,75 +10,49 @@ // function inner() { this; } // class Inner { x = this; } // } -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === + // <|class /*FIND ALL REFS*/[|C|] { + // static s() { + // this; + // } + // static get f() { + // return this; + // + // function inner() { this; } + // class Inner { x = this; } + // } + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 166 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "contextSpan": { - "start": 0, - "length": 166 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 35, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === // class C { // static s() { @@ -91,66 +66,59 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 35, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === + // class C { + // static s() { + // /*FIND ALL REFS*/[|this|]; + // } + // static get f() { + // return this; + // + // function inner() { this; } + // class Inner { x = this; } + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === // class C { // static s() { @@ -164,62 +132,68 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 83, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === + // class C { + // static s() { + // this; + // } + // static get f() { + // return /*FIND ALL REFS*/[|this|]; + // + // function inner() { this; } + // class Inner { x = this; } + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts === +// <|class /*RENAME*/[|CRENAME|] { +// static s() { +// this; +// } +// static get f() { +// return this; +// +// function inner() { this; } +// class Inner { x = this; } +// } +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsCommonJsRequire.baseline.jsonc b/tests/baselines/reference/findAllRefsCommonJsRequire.baseline.jsonc index 5636097a54323..f51d2a8bccf60 100644 --- a/tests/baselines/reference/findAllRefsCommonJsRequire.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsCommonJsRequire.baseline.jsonc @@ -1,192 +1,135 @@ +// === findAllReferences === // === /b.js === -// const { [|f|] } = require('./a') -// /*FIND ALL REFS*/[|f|] +// <|const { [|{| defId: 0, isWriteAccess: true |}f|] } = require('./a')|> +// /*FIND ALL REFS*/[|{| defId: 0 |}f|] // === /a.js === -// function [|f|]() { } -// export { [|f|] } +// <|function [|{| defId: 1, isWriteAccess: true |}f|]() { }|> +// <|export { [|{| defId: 1, isWriteAccess: true |}f|] }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /b.js === + // <|const { [|{| defId: 0 |}f|] } = require('./a')|> + // /*FIND ALL REFS*/f + + // === /a.js === + // <|function [|{| defId: 1 |}f|]() { }|> + // export { f } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 12 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsCommonJsRequire2.baseline.jsonc b/tests/baselines/reference/findAllRefsCommonJsRequire2.baseline.jsonc index 9363ef8905849..aea08c33061a0 100644 --- a/tests/baselines/reference/findAllRefsCommonJsRequire2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsCommonJsRequire2.baseline.jsonc @@ -1,212 +1,167 @@ +// === findAllReferences === // === /b.js === -// const { [|f|] } = require('./a') -// /*FIND ALL REFS*/[|f|] +// <|const { [|{| defId: 0, isWriteAccess: true |}f|] } = require('./a')|> +// /*FIND ALL REFS*/[|{| defId: 0 |}f|] // === /a.js === // function f() { } -// module.exports.[|f|] = f +// <|module.exports.[|{| defId: 1, isWriteAccess: true |}f|] = f|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /b.js === + // <|const { [|{| defId: 0 |}f|] } = require('./a')|> + // /*FIND ALL REFS*/f + + // === /a.js === + // function f() { } + // <|module.exports.[|{| defId: 1 |}f|]|> = f + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 32, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 17, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 20 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsCommonJsRequire3.baseline.jsonc b/tests/baselines/reference/findAllRefsCommonJsRequire3.baseline.jsonc index 37e524fbda794..7bd60288543ef 100644 --- a/tests/baselines/reference/findAllRefsCommonJsRequire3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsCommonJsRequire3.baseline.jsonc @@ -1,188 +1,135 @@ +// === findAllReferences === // === /b.js === -// const { [|f|] } = require('./a') -// /*FIND ALL REFS*/[|f|] +// <|const { [|{| defId: 0, isWriteAccess: true |}f|] } = require('./a')|> +// /*FIND ALL REFS*/[|{| defId: 0 |}f|] // === /a.js === -// function [|f|]() { } -// module.exports = { [|f|] } +// <|function [|{| defId: 1, isWriteAccess: true |}f|]() { }|> +// module.exports = { [|{| defId: 1, isWriteAccess: true |}f|] } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /b.js === + // <|const { [|{| defId: 0 |}f|] } = require('./a')|> + // /*FIND ALL REFS*/f + + // === /a.js === + // <|function [|{| defId: 1 |}f|]() { }|> + // module.exports = { f } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsConstructorFunctions.baseline.jsonc b/tests/baselines/reference/findAllRefsConstructorFunctions.baseline.jsonc index a42c698aa1ef8..91a7ce26b8d93 100644 --- a/tests/baselines/reference/findAllRefsConstructorFunctions.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsConstructorFunctions.baseline.jsonc @@ -1,434 +1,319 @@ +// === findAllReferences === // === /a.js === // function f() { -// /*FIND ALL REFS*/[|this|].x = 0; +// /*FIND ALL REFS*/<|[|this|].x = 0;|> // } // f.prototype.setX = function() { // this.x = 1; // } // f.prototype.useX = function() { this.x; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "var", - "name": "this", - "textSpan": { - "start": 19, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 4 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 19, - "length": 11 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // function f() { + // /*FIND ALL REFS*/[|this|].x = 0; + // } + // f.prototype.setX = function() { + // this.x = 1; + // } + // f.prototype.useX = function() { this.x; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // function f() { -// this./*FIND ALL REFS*/[|x|] = 0; +// <|this./*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // } // f.prototype.setX = function() { -// this.[|x|] = 1; +// <|this.[|{| isWriteAccess: true, isDefinition: true |}x|] = 1;|> // } // f.prototype.useX = function() { this.[|x|]; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "property", - "name": "(property) f.x: number", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 19, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 69, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // function f() { + // <|this./*FIND ALL REFS*/[|x|] = 0;|> + // } + // f.prototype.setX = function() { + // this.x = 1; + // } + // f.prototype.useX = function() { this.x; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) f.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // function f() { // this.x = 0; // } // f.prototype.setX = function() { -// /*FIND ALL REFS*/[|this|].x = 1; +// /*FIND ALL REFS*/<|[|this|].x = 1;|> // } // f.prototype.useX = function() { this.x; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "var", - "name": "this", - "textSpan": { - "start": 69, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 69, - "length": 4 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 69, - "length": 11 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // function f() { + // this.x = 0; + // } + // f.prototype.setX = function() { + // /*FIND ALL REFS*/[|this|].x = 1; + // } + // f.prototype.useX = function() { this.x; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // function f() { -// this.[|x|] = 0; +// <|this.[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // } // f.prototype.setX = function() { -// this./*FIND ALL REFS*/[|x|] = 1; +// <|this./*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 1;|> // } // f.prototype.useX = function() { this.[|x|]; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "property", - "name": "(property) f.x: number", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 19, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 69, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // function f() { + // <|this.[|x|] = 0;|> + // } + // f.prototype.setX = function() { + // this./*FIND ALL REFS*/x = 1; + // } + // f.prototype.useX = function() { this.x; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) f.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // function f() { -// this.[|x|] = 0; +// <|this.[|{| isWriteAccess: true |}x|] = 0;|> // } // f.prototype.setX = function() { -// this.[|x|] = 1; +// <|this.[|{| isWriteAccess: true |}x|] = 1;|> // } // f.prototype.useX = function() { this./*FIND ALL REFS*/[|x|]; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "property", - "name": "(property) f.x: number", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 19, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 69, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // function f() { + // <|this.[|x|] = 0;|> + // } + // f.prototype.setX = function() { + // this.x = 1; + // } + // f.prototype.useX = function() { this./*FIND ALL REFS*/x; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) f.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDeclareClass.baseline.jsonc b/tests/baselines/reference/findAllRefsDeclareClass.baseline.jsonc index 31f140f0ac781..3f112145dd33a 100644 --- a/tests/baselines/reference/findAllRefsDeclareClass.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDeclareClass.baseline.jsonc @@ -1,107 +1,73 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDeclareClass.ts === -// /*FIND ALL REFS*/declare class [|C|] { +// /*FIND ALL REFS*/<|declare class [|{| isWriteAccess: true, isDefinition: true |}C|] { // static m(): void; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDeclareClass.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDeclareClass.ts", - "contextSpan": { - "start": 0, - "length": 41 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDeclareClass.ts === + // /*FIND ALL REFS*/<|declare class [|C|] { + // static m(): void; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDeclareClass.ts === -// declare class /*FIND ALL REFS*/[|C|] { +// <|declare class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}C|] { // static m(): void; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDeclareClass.ts === + // <|declare class /*FIND ALL REFS*/[|C|] { + // static m(): void; + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDeclareClass.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDeclareClass.ts", - "contextSpan": { - "start": 0, - "length": 41 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDefaultImport.baseline.jsonc b/tests/baselines/reference/findAllRefsDefaultImport.baseline.jsonc index 6acc86644c282..7fff552e8974a 100644 --- a/tests/baselines/reference/findAllRefsDefaultImport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDefaultImport.baseline.jsonc @@ -1,345 +1,265 @@ +// === findAllReferences === +// === /a.ts === +// <|export default function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|]() {}|> + // === /b.ts === -// import [|a|], * as ns from "./a"; +// <|import [|{| defId: 1, isWriteAccess: true |}a|], * as ns from "./a";|> -// === /a.ts === -// export default function /*FIND ALL REFS*/[|a|]() {} + // === Definitions === + // === /a.ts === + // <|export default function /*FIND ALL REFS*/[|{| defId: 0 |}a|]() {}|> + + // === /b.ts === + // <|import [|{| defId: 1 |}a|], * as ns from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function a(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function a(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function a(): void\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|a|], * as ns from "./a"; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|], * as ns from "./a";|> // === /a.ts === -// export default function [|a|]() {} +// <|export default function [|{| defId: 1, isWriteAccess: true |}a|]() {}|> + + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}a|], * as ns from "./a";|> + + // === /a.ts === + // <|export default function [|{| defId: 1 |}a|]() {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function a(): void\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function a(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function a(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDefaultImportThroughNamespace.baseline.jsonc b/tests/baselines/reference/findAllRefsDefaultImportThroughNamespace.baseline.jsonc index 625205039cb8e..1412170dbfe56 100644 --- a/tests/baselines/reference/findAllRefsDefaultImportThroughNamespace.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDefaultImportThroughNamespace.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /a.ts === -// export /*FIND ALL REFS*/[|default|] function f() {} +// <|export /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}default|] function f() {}|> // === /c.ts === // import { a } from "./b"; @@ -8,86 +9,59 @@ // declare const x: { default: number }; // x.default; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export /*FIND ALL REFS*/default function [|f|]() {}|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export default function /*FIND ALL REFS*/[|f|]() {} +// <|export default function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|]() {}|> // === /c.ts === // import { a } from "./b"; @@ -96,86 +70,59 @@ // declare const x: { default: number }; // x.default; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export default function /*FIND ALL REFS*/[|f|]() {}|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export default function [|f|]() {} +// <|export default function [|{| isWriteAccess: true |}f|]() {}|> // === /c.ts === // import { a } from "./b"; @@ -184,246 +131,200 @@ // declare const x: { default: number }; // x.default; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export default function [|f|]() {}|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c.ts === // import { a } from "./b"; // a.default(); // -// declare const x: { /*FIND ALL REFS*/[|default|]: number }; +// declare const x: { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}default|]: number|> }; // x.[|default|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "property", - "name": "(property) default: number", - "textSpan": { - "start": 58, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 58, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 58, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 79, - "length": 7 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /c.ts === + // import { a } from "./b"; + // a.default(); + // + // declare const x: { /*FIND ALL REFS*/<|[|default|]: number|> }; + // x.default; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) default: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c.ts === // import { a } from "./b"; // a.default(); // -// declare const x: { [|default|]: number }; +// declare const x: { <|[|{| isWriteAccess: true |}default|]: number|> }; // x./*FIND ALL REFS*/[|default|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "property", - "name": "(property) default: number", - "textSpan": { - "start": 58, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 58, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 58, - "length": 15 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 79, - "length": 7 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } + // === Definitions === + // === /c.ts === + // import { a } from "./b"; + // a.default(); + // + // declare const x: { <|[|default|]: number|> }; + // x./*FIND ALL REFS*/default; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) default: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|export default function /*RENAME*/[|fRENAME|]() {}|> + + + +// === findRenameLocations === +// === /c.ts === +// import { a } from "./b"; +// a.default(); +// +// declare const x: { /*RENAME*/<|[|defaultRENAME|]: number|> }; +// x.[|defaultRENAME|]; + + + +// === findRenameLocations === +// === /c.ts === +// import { a } from "./b"; +// a.default(); +// +// declare const x: { <|[|defaultRENAME|]: number|> }; +// x./*RENAME*/[|defaultRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDefinition.baseline.jsonc b/tests/baselines/reference/findAllRefsDefinition.baseline.jsonc index 8deaf1b3becee..9674771fdbe9a 100644 --- a/tests/baselines/reference/findAllRefsDefinition.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDefinition.baseline.jsonc @@ -1,145 +1,93 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDefinition.ts === -// const /*FIND ALL REFS*/[|x|] = 0; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // [|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDefinition.ts === + // <|const /*FIND ALL REFS*/[|x|] = 0;|> + // x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDefinition.ts === -// const [|x|] = 0; +// <|const [|{| isWriteAccess: true |}x|] = 0;|> // /*FIND ALL REFS*/[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDefinition.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDefinition.ts === + // <|const [|x|] = 0;|> + // /*FIND ALL REFS*/x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDestructureGeneric.baseline.jsonc b/tests/baselines/reference/findAllRefsDestructureGeneric.baseline.jsonc index fd9f24341998b..f5947687b5c79 100644 --- a/tests/baselines/reference/findAllRefsDestructureGeneric.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDestructureGeneric.baseline.jsonc @@ -1,262 +1,195 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGeneric.ts === // interface I { -// /*FIND ALL REFS*/[|x|]: boolean; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}x|]: boolean;|> // } // declare const i: I; -// const { [|x|] } = i; +// <|const { [|{| isWriteAccess: true |}x|] } = i;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "kind": "property", - "name": "(property) I.x: boolean", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 21, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "contextSpan": { - "start": 21, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "contextSpan": { - "start": 63, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGeneric.ts === + // interface I { + // /*FIND ALL REFS*/<|[|x|]: boolean;|> + // } + // declare const i: I; + // const { x } = i; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.x: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGeneric.ts === // interface I { -// [|x|]: boolean; +// <|[|{| defId: 0 |}x|]: boolean;|> // } // declare const i: I; -// const { /*FIND ALL REFS*/[|x|] } = i; +// <|const { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}x|] } = i;|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGeneric.ts === + // interface I { + // <|[|{| defId: 0 |}x|]: boolean;|> + // } + // declare const i: I; + // <|const { /*FIND ALL REFS*/[|{| defId: 1 |}x|] } = i;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "kind": "property", - "name": "(property) I.x: boolean", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 21, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "contextSpan": { - "start": 21, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.x: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "kind": "const", - "name": "const x: boolean", - "textSpan": { - "start": 71, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 63, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGeneric.ts", - "contextSpan": { - "start": 63, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: boolean", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDestructureGetter.baseline.jsonc b/tests/baselines/reference/findAllRefsDestructureGetter.baseline.jsonc index aed39b40351ac..ff35b150a332f 100644 --- a/tests/baselines/reference/findAllRefsDestructureGetter.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDestructureGetter.baseline.jsonc @@ -1,657 +1,477 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { -// get /*FIND ALL REFS*/[|x|]() { return 0; } +// <|get /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]() { return 0; }|> // // set y(a: number) {} // } -// const { [|x|], y } = new Test(); +// <|const { [|{| isWriteAccess: true |}x|], y } = new Test();|> // x; y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "property", - "name": "(property) Test.x: number", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 17, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // <|get /*FIND ALL REFS*/[|x|]() { return 0; }|> + // + // set y(a: number) {} + // } + // const { x, y } = new Test(); + // x; y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { -// get [|x|]() { return 0; } +// <|get [|{| defId: 0, isWriteAccess: true |}x|]() { return 0; }|> // // set y(a: number) {} // } -// const { /*FIND ALL REFS*/[|x|], y } = new Test(); -// [|x|]; y; +// <|const { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}x|], y } = new Test();|> +// [|{| defId: 1 |}x|]; y; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // <|get [|{| defId: 0 |}x|]() { return 0; }|> + // + // set y(a: number) {} + // } + // <|const { /*FIND ALL REFS*/[|{| defId: 1 |}x|], y } = new Test();|> + // x; y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "property", - "name": "(property) Test.x: number", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 17, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 74, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { // get x() { return 0; } // // set y(a: number) {} // } -// const { [|x|], y } = new Test(); +// <|const { [|{| isWriteAccess: true |}x|], y } = new Test();|> // /*FIND ALL REFS*/[|x|]; y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 74, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // get x() { return 0; } + // + // set y(a: number) {} + // } + // <|const { [|x|], y } = new Test();|> + // /*FIND ALL REFS*/x; y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { // get x() { return 0; } // -// set /*FIND ALL REFS*/[|y|](a: number) {} +// <|set /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}y|](a: number) {}|> // } -// const { x, [|y|] } = new Test(); +// <|const { x, [|{| isWriteAccess: true |}y|] } = new Test();|> // x; y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "property", - "name": "(property) Test.y: number", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "y", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 44, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 44, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // get x() { return 0; } + // + // <|set /*FIND ALL REFS*/[|y|](a: number) {}|> + // } + // const { x, y } = new Test(); + // x; y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.y: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "y", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { // get x() { return 0; } // -// set [|y|](a: number) {} +// <|set [|{| defId: 0, isWriteAccess: true |}y|](a: number) {}|> // } -// const { x, /*FIND ALL REFS*/[|y|] } = new Test(); -// x; [|y|]; +// <|const { x, /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}y|] } = new Test();|> +// x; [|{| defId: 1 |}y|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "property", - "name": "(property) Test.y: number", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "y", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 44, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 44, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // get x() { return 0; } + // + // <|set [|{| defId: 0 |}y|](a: number) {}|> + // } + // <|const { x, /*FIND ALL REFS*/[|{| defId: 1 |}y|] } = new Test();|> + // x; y; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.y: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "y", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "const", - "name": "const y: number", - "textSpan": { - "start": 77, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const y: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === // class Test { // get x() { return 0; } // // set y(a: number) {} // } -// const { x, [|y|] } = new Test(); +// <|const { x, [|{| isWriteAccess: true |}y|] } = new Test();|> // x; /*FIND ALL REFS*/[|y|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "kind": "const", - "name": "const y: number", - "textSpan": { - "start": 77, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsDestructureGetter.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsDestructureGetter.ts === + // class Test { + // get x() { return 0; } + // + // set y(a: number) {} + // } + // <|const { x, [|y|] } = new Test();|> + // x; /*FIND ALL REFS*/y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const y: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsDestructureGetter2.baseline.jsonc b/tests/baselines/reference/findAllRefsDestructureGetter2.baseline.jsonc index 957e5c93b1b3e..87d80dd63faf4 100644 --- a/tests/baselines/reference/findAllRefsDestructureGetter2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsDestructureGetter2.baseline.jsonc @@ -1,481 +1,353 @@ +// === findAllReferences === // === /a.ts === // class C { -// get /*FIND ALL REFS*/[|g|](): number { return 0; } +// <|get /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}g|](): number { return 0; }|> // // set s(value: number) {} // } -// const { [|g|], s } = new C(); +// <|const { [|{| isWriteAccess: true |}g|], s } = new C();|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "property", - "name": "(property) C.g: number", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "g", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 14, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 75, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // class C { + // <|get /*FIND ALL REFS*/[|g|](): number { return 0; }|> + // + // set s(value: number) {} + // } + // const { g, s } = new C(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.g: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "g", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // class C { -// get [|g|](): number { return 0; } +// <|get [|{| defId: 0, isWriteAccess: true |}g|](): number { return 0; }|> // // set s(value: number) {} // } -// const { /*FIND ALL REFS*/[|g|], s } = new C(); +// <|const { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}g|], s } = new C();|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "property", - "name": "(property) C.g: number", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "g", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 14, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // class C { + // <|get [|{| defId: 0 |}g|](): number { return 0; }|> + // + // set s(value: number) {} + // } + // <|const { /*FIND ALL REFS*/[|{| defId: 1 |}g|], s } = new C();|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.g: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "g", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const g: number", - "textSpan": { - "start": 83, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 75, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 75, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const g: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // class C { // get g(): number { return 0; } // -// set /*FIND ALL REFS*/[|s|](value: number) {} +// <|set /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}s|](value: number) {}|> // } -// const { g, [|s|] } = new C(); +// <|const { g, [|{| isWriteAccess: true |}s|] } = new C();|> + + // === Definitions === + // === /a.ts === + // class C { + // get g(): number { return 0; } + // + // <|set /*FIND ALL REFS*/[|s|](value: number) {}|> + // } + // const { g, s } = new C(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "property", - "name": "(property) C.s: number", - "textSpan": { - "start": 53, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 49, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 53, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 49, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 75, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.s: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // class C { // get g(): number { return 0; } // -// set [|s|](value: number) {} +// <|set [|{| defId: 0, isWriteAccess: true |}s|](value: number) {}|> // } -// const { g, /*FIND ALL REFS*/[|s|] } = new C(); +// <|const { g, /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}s|] } = new C();|> + + // === Definitions === + // === /a.ts === + // class C { + // get g(): number { return 0; } + // + // <|set [|{| defId: 0 |}s|](value: number) {}|> + // } + // <|const { g, /*FIND ALL REFS*/[|{| defId: 1 |}s|] } = new C();|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "property", - "name": "(property) C.s: number", - "textSpan": { - "start": 53, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 49, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 53, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 49, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.s: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const s: number", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "s", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 75, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 75, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const s: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "s", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsEnumAsNamespace.baseline.jsonc b/tests/baselines/reference/findAllRefsEnumAsNamespace.baseline.jsonc index 35313c0825627..a5386ed8f3937 100644 --- a/tests/baselines/reference/findAllRefsEnumAsNamespace.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsEnumAsNamespace.baseline.jsonc @@ -1,183 +1,105 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === -// /*FIND ALL REFS*/enum [|E|] { A } +// /*FIND ALL REFS*/<|enum [|{| isWriteAccess: true, isDefinition: true |}E|] { A }|> // let e: [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === + // /*FIND ALL REFS*/<|enum [|E|] { A }|> + // let e: E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === -// enum /*FIND ALL REFS*/[|E|] { A } +// <|enum /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}E|] { A }|> // let e: [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === + // <|enum /*FIND ALL REFS*/[|E|] { A }|> + // let e: E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === -// enum [|E|] { A } +// <|enum [|{| isWriteAccess: true |}E|] { A }|> // let e: /*FIND ALL REFS*/[|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumAsNamespace.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumAsNamespace.ts === + // <|enum [|E|] { A }|> + // let e: /*FIND ALL REFS*/E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsEnumMember.baseline.jsonc b/tests/baselines/reference/findAllRefsEnumMember.baseline.jsonc index 510d9c505ca9a..e3b23bd2d1b18 100644 --- a/tests/baselines/reference/findAllRefsEnumMember.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsEnumMember.baseline.jsonc @@ -1,278 +1,201 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumMember.ts === -// enum E { /*FIND ALL REFS*/[|A|], B } +// enum E { /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}A|], B } // const e: E.[|A|] = E.[|A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "kind": "enum member", - "name": "(enum member) E.A = 0", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "A", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumMember.ts === + // enum E { /*FIND ALL REFS*/[|A|], B } + // const e: E.A = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.A = 0", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "A", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumMember.ts === -// enum E { [|A|], B } +// enum E { [|{| isWriteAccess: true |}A|], B } // const e: E./*FIND ALL REFS*/[|A|] = E.[|A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "kind": "enum member", - "name": "(enum member) E.A = 0", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "A", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumMember.ts === + // enum E { [|A|], B } + // const e: E./*FIND ALL REFS*/A = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.A = 0", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "A", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsEnumMember.ts === -// enum E { [|A|], B } +// enum E { [|{| isWriteAccess: true |}A|], B } // const e: E.[|A|] = E./*FIND ALL REFS*/[|A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "kind": "enum member", - "name": "(enum member) E.A = 0", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "A", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "numericLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsEnumMember.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsEnumMember.ts === + // enum E { [|A|], B } + // const e: E.A = E./*FIND ALL REFS*/A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.A = 0", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "A", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportAsNamespace.baseline.jsonc b/tests/baselines/reference/findAllRefsExportAsNamespace.baseline.jsonc index b31f615f887de..b68af94848e81 100644 --- a/tests/baselines/reference/findAllRefsExportAsNamespace.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportAsNamespace.baseline.jsonc @@ -1,554 +1,414 @@ +// === findAllReferences === +// === /node_modules/a/index.d.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|](): void;|> +// export as namespace A; + // === /c.ts === -// A.[|f|](); +// A.[|{| defId: 0 |}f|](); // === /b.ts === -// import { [|f|] } from "a"; +// <|import { [|{| defId: 1, isWriteAccess: true |}f|] } from "a";|> -// === /node_modules/a/index.d.ts === -// export function /*FIND ALL REFS*/[|f|](): void; -// export as namespace A; + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}f|](): void;|> + // export as namespace A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 2, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === /b.ts === + // <|import { [|{| defId: 1 |}f|] } from "a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /c.ts === -// A.[|f|](); +// === findAllReferences === // === /b.ts === -// import { /*FIND ALL REFS*/[|f|] } from "a"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|] } from "a";|> // === /node_modules/a/index.d.ts === -// export function [|f|](): void; +// <|export function [|{| defId: 1, isWriteAccess: true |}f|](): void;|> // export as namespace A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /c.ts === +// A.[|{| defId: 1 |}f|](); + + // === Definitions === + // === /b.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}f|] } from "a";|> + + // === /node_modules/a/index.d.ts === + // <|export function [|{| defId: 1 |}f|](): void;|> + // export as namespace A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 2, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] -// === /c.ts === -// A./*FIND ALL REFS*/[|f|](); -// === /b.ts === -// import { [|f|] } from "a"; +// === findAllReferences === // === /node_modules/a/index.d.ts === -// export function [|f|](): void; +// <|export function [|{| defId: 0, isWriteAccess: true |}f|](): void;|> // export as namespace A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 2, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } +// === /c.ts === +// A./*FIND ALL REFS*/[|{| defId: 0 |}f|](); + +// === /b.ts === +// <|import { [|{| defId: 1, isWriteAccess: true |}f|] } from "a";|> + + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|export function [|{| defId: 0 |}f|](): void;|> + // export as namespace A; + + // === /b.ts === + // <|import { [|{| defId: 1 |}f|] } from "a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportConstEqualToClass.baseline.jsonc b/tests/baselines/reference/findAllRefsExportConstEqualToClass.baseline.jsonc index 31017d06ea760..52c02de21e036 100644 --- a/tests/baselines/reference/findAllRefsExportConstEqualToClass.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportConstEqualToClass.baseline.jsonc @@ -1,347 +1,269 @@ -// === /b.ts === -// import { [|D|] } from "./a"; - +// === findAllReferences === // === /a.ts === // class C {} -// export const /*FIND ALL REFS*/[|D|] = C; +// <|export const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] = C;|> + +// === /b.ts === +// <|import { [|{| defId: 1, isWriteAccess: true |}D|] } from "./a";|> + + // === Definitions === + // === /a.ts === + // class C {} + // <|export const /*FIND ALL REFS*/[|{| defId: 0 |}D|] = C;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const D: typeof C", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 11, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 11, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /b.ts === + // <|import { [|{| defId: 1 |}D|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const D: typeof C", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const D: typeof C\nimport D", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const D: typeof C\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { /*FIND ALL REFS*/[|D|] } from "./a"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] } from "./a";|> // === /a.ts === // class C {} -// export const [|D|] = C; +// <|export const [|{| defId: 1, isWriteAccess: true |}D|] = C;|> + + // === Definitions === + // === /b.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}D|] } from "./a";|> + + // === /a.ts === + // class C {} + // <|export const [|{| defId: 1 |}D|] = C;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const D: typeof C\nimport D", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const D: typeof C\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const D: typeof C", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 11, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 11, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const D: typeof C", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportDefaultClassConstructor.baseline.jsonc b/tests/baselines/reference/findAllRefsExportDefaultClassConstructor.baseline.jsonc index 1032c93c93e89..f40fbcb930723 100644 --- a/tests/baselines/reference/findAllRefsExportDefaultClassConstructor.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportDefaultClassConstructor.baseline.jsonc @@ -1,49 +1,35 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsExportDefaultClassConstructor.ts === // export default class { -// /*FIND ALL REFS*/[|constructor|]() {} +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|]() {}|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsExportDefaultClassConstructor.ts", - "kind": "class", - "name": "class default", - "textSpan": { - "start": 0, - "length": 45 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "className" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsExportDefaultClassConstructor.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsExportDefaultClassConstructor.ts === + // [|export default class { + // /*FIND ALL REFS*/constructor() {} + // }|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class default", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc index 159344236d8e1..ce0bdb21e8734 100644 --- a/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc @@ -1,1078 +1,798 @@ +// === findAllReferences === // === /a.ts === -// type /*FIND ALL REFS*/[|T|] = number; -// export = [|T|]; +// <|type /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}T|] = number;|> +// <|export = [|{| defId: 0 |}T|];|> // === /b.ts === -// import [|T|] = require("./a"); +// <|import [|{| defId: 1, isWriteAccess: true |}T|] = require("./a");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|type /*FIND ALL REFS*/[|{| defId: 0 |}T|] = number;|> + // export = T; + + // === /b.ts === + // <|import [|{| defId: 1 |}T|] = require("./a");|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) type T = number\nimport T = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) type T = number\nimport T = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// type [|T|] = number; -// /*FIND ALL REFS*/export = [|T|]; +// <|type [|{| defId: 0, isWriteAccess: true |}T|] = number;|> +// /*FIND ALL REFS*/<|export = [|{| defId: 0 |}T|];|> // === /b.ts === -// import [|T|] = require("./a"); +// <|import [|{| defId: 1, isWriteAccess: true |}T|] = require("./a");|> + + // === Definitions === + // === /a.ts === + // <|type [|{| defId: 0 |}T|] = number;|> + // /*FIND ALL REFS*/export = T; + + // === /b.ts === + // <|import [|{| defId: 1 |}T|] = require("./a");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) type T = number\nimport T = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) type T = number\nimport T = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// type [|T|] = number; -// export = /*FIND ALL REFS*/[|T|]; +// <|type [|{| defId: 0, isWriteAccess: true |}T|] = number;|> +// <|export = /*FIND ALL REFS*/[|{| defId: 0 |}T|];|> // === /b.ts === -// import [|T|] = require("./a"); +// <|import [|{| defId: 1, isWriteAccess: true |}T|] = require("./a");|> + + // === Definitions === + // === /a.ts === + // <|type [|{| defId: 0 |}T|] = number;|> + // export = /*FIND ALL REFS*/T; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false - } + // === /b.ts === + // <|import [|{| defId: 1 |}T|] = require("./a");|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) type T = number\nimport T = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) type T = number\nimport T = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] -// === /a.ts === -// type [|T|] = number; -// export = [|T|]; + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|T|] = require("./a"); +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}T|] = require("./a");|> + +// === /a.ts === +// <|type [|{| defId: 1, isWriteAccess: true |}T|] = number;|> +// <|export = [|{| defId: 1 |}T|];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) type T = number\nimport T = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}T|] = require("./a");|> + + // === /a.ts === + // <|type [|{| defId: 1 |}T|] = number;|> + // export = T; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) type T = number\nimport T = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] -// === /a.ts === -// type [|T|] = number; -// [|export|] = [|T|]; + +// === findAllReferences === // === /b.ts === -// import [|T|] = require("/*FIND ALL REFS*/[|./a|]"); +// <|<|import [|{| defId: 2, isWriteAccess: true |}T|] = require("/*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}./a|]");|>|> + +// === /a.ts === +// <|type [|{| defId: 1, isWriteAccess: true |}T|] = number;|> +// <|[|{| defId: 0 |}<|export|] = [|{| contextId: 4, defId: 1 |}T|];|>|> + + // === Definitions === + // === /a.ts === + // [|{| defId: 0 |}<|type [|{| defId: 1 |}T|] = number;|> + // export = T;|] + + // === /b.ts === + // <|import [|{| defId: 2 |}T|] = require("/*FIND ALL REFS*/./a");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 28 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 6 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) type T = number\nimport T = require(\"./a\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) type T = number\nimport T = require(\"./a\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportNotAtTopLevel.baseline.jsonc b/tests/baselines/reference/findAllRefsExportNotAtTopLevel.baseline.jsonc index 750b7d3c184d8..af1e2187c192a 100644 --- a/tests/baselines/reference/findAllRefsExportNotAtTopLevel.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportNotAtTopLevel.baseline.jsonc @@ -1,151 +1,110 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts === +// { +// /*FIND ALL REFS*/export const x = 0; +// x; +// } + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts === // { -// export const /*FIND ALL REFS*/[|x|] = 0; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // [|x|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 19, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 6, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "contextSpan": { - "start": 6, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts === + // { + // <|export const /*FIND ALL REFS*/[|x|] = 0;|> + // x; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts === // { -// export const [|x|] = 0; +// <|export const [|{| isWriteAccess: true |}x|] = 0;|> // /*FIND ALL REFS*/[|x|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 19, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 6, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "contextSpan": { - "start": 6, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsExportNotAtTopLevel.ts === + // { + // <|export const [|x|] = 0;|> + // /*FIND ALL REFS*/x; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForComputedProperties.baseline.jsonc b/tests/baselines/reference/findAllRefsForComputedProperties.baseline.jsonc index 90a37123bfb0c..374cf77cbaab4 100644 --- a/tests/baselines/reference/findAllRefsForComputedProperties.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForComputedProperties.baseline.jsonc @@ -1,614 +1,477 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === // interface I { -// ["/*FIND ALL REFS*/[|prop1|]"]: () => void; +// <|["/*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}prop1|]"]: () => void;|> // } // // class C implements I { -// ["[|prop1|]"]: any; +// <|["[|{| defId: 1 |}prop1|]"]: any;|> // } // // var x: I = { -// ["[|prop1|]"]: function () { }, +// <|["[|{| defId: 0, isWriteAccess: true |}prop1|]"]: function () { }|>, // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) I[\"prop1\"]: () => void", - "textSpan": { - "start": 20, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 18, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 109, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 107, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === + // interface I { + // <|["/*FIND ALL REFS*/[|{| defId: 0 |}prop1|]"]: () => void;|> + // } + // + // class C implements I { + // <|["[|{| defId: 1 |}prop1|]"]: any;|> + // } + // + // var x: I = { + // ["prop1"]: function () { }, + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I[\"prop1\"]: () => void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) C[\"prop1\"]: any", - "textSpan": { - "start": 73, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 71, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 71, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[\"prop1\"]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === // interface I { -// ["[|prop1|]"]: () => void; +// <|["[|{| defId: 0 |}prop1|]"]: () => void;|> // } // // class C implements I { -// ["/*FIND ALL REFS*/[|prop1|]"]: any; +// <|["/*FIND ALL REFS*/[|{| defId: 1, isDefinition: true |}prop1|]"]: any;|> // } // // var x: I = { -// ["[|prop1|]"]: function () { }, +// <|["[|{| defId: 0, isWriteAccess: true |}prop1|]"]: function () { }|>, // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) I[\"prop1\"]: () => void", - "textSpan": { - "start": 20, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 18, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 109, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 107, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === + // interface I { + // <|["[|{| defId: 0 |}prop1|]"]: () => void;|> + // } + // + // class C implements I { + // <|["/*FIND ALL REFS*/[|{| defId: 1 |}prop1|]"]: any;|> + // } + // + // var x: I = { + // ["prop1"]: function () { }, + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I[\"prop1\"]: () => void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) C[\"prop1\"]: any", - "textSpan": { - "start": 73, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 71, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 71, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[\"prop1\"]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === // interface I { -// ["[|prop1|]"]: () => void; +// <|["[|{| defId: 0 |}prop1|]"]: () => void;|> // } // // class C implements I { -// ["[|prop1|]"]: any; +// <|["[|{| defId: 1 |}prop1|]"]: any;|> // } // // var x: I = { -// ["/*FIND ALL REFS*/[|prop1|]"]: function () { }, +// <|["/*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}prop1|]"]: function () { }|>, // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) I[\"prop1\"]: () => void", - "textSpan": { - "start": 20, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 18, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 109, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 107, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties.ts === + // interface I { + // <|["[|{| defId: 0 |}prop1|]"]: () => void;|> + // } + // + // class C implements I { + // <|["[|{| defId: 1 |}prop1|]"]: any;|> + // } + // + // var x: I = { + // ["/*FIND ALL REFS*/prop1"]: function () { }, + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I[\"prop1\"]: () => void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "kind": "property", - "name": "(property) C[\"prop1\"]: any", - "textSpan": { - "start": 73, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"prop1\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 71, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties.ts", - "contextSpan": { - "start": 71, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[\"prop1\"]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"prop1\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForComputedProperties2.baseline.jsonc b/tests/baselines/reference/findAllRefsForComputedProperties2.baseline.jsonc index 2566b42dcf930..bdd4b8af5055c 100644 --- a/tests/baselines/reference/findAllRefsForComputedProperties2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForComputedProperties2.baseline.jsonc @@ -1,578 +1,441 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === // interface I { -// [/*FIND ALL REFS*/[|42|]](): void; +// <|[/*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}42|]](): void;|> // } // // class C implements I { -// [[|42|]]: any; +// <|[[|{| defId: 1 |}42|]]: any;|> // } // // var x: I = { -// ["[|42|]"]: function () { } +// <|["[|{| defId: 0, isWriteAccess: true |}42|]"]: function () { }|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "method", - "name": "(method) I[42](): void", - "textSpan": { - "start": 19, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 18, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 95, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 93, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === + // interface I { + // <|[/*FIND ALL REFS*/[|{| defId: 0 |}42|]](): void;|> + // } + // + // class C implements I { + // <|[[|{| defId: 1 |}42|]]: any;|> + // } + // + // var x: I = { + // ["42"]: function () { } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I[42](): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "property", - "name": "(property) C[42]: any", - "textSpan": { - "start": 63, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 63, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 62, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[42]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === // interface I { -// [[|42|]](): void; +// <|[[|{| defId: 0 |}42|]](): void;|> // } // // class C implements I { -// [/*FIND ALL REFS*/[|42|]]: any; +// <|[/*FIND ALL REFS*/[|{| defId: 1, isDefinition: true |}42|]]: any;|> // } // // var x: I = { -// ["[|42|]"]: function () { } +// <|["[|{| defId: 0, isWriteAccess: true |}42|]"]: function () { }|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "method", - "name": "(method) I[42](): void", - "textSpan": { - "start": 19, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 18, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 93, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === + // interface I { + // <|[[|{| defId: 0 |}42|]](): void;|> + // } + // + // class C implements I { + // <|[/*FIND ALL REFS*/[|{| defId: 1 |}42|]]: any;|> + // } + // + // var x: I = { + // ["42"]: function () { } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I[42](): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "property", - "name": "(property) C[42]: any", - "textSpan": { - "start": 63, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 63, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 62, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[42]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === // interface I { -// [[|42|]](): void; +// <|[[|{| defId: 0 |}42|]](): void;|> // } // // class C implements I { -// [[|42|]]: any; +// <|[[|{| defId: 1 |}42|]]: any;|> // } // // var x: I = { -// ["/*FIND ALL REFS*/[|42|]"]: function () { } +// <|["/*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}42|]"]: function () { }|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "method", - "name": "(method) I[42](): void", - "textSpan": { - "start": 19, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 18, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 93, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForComputedProperties2.ts === + // interface I { + // <|[[|{| defId: 0 |}42|]](): void;|> + // } + // + // class C implements I { + // <|[[|{| defId: 1 |}42|]]: any;|> + // } + // + // var x: I = { + // ["/*FIND ALL REFS*/42"]: function () { } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I[42](): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "kind": "property", - "name": "(property) C[42]: any", - "textSpan": { - "start": 63, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "42", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 63, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForComputedProperties2.ts", - "contextSpan": { - "start": 62, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C[42]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "42", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport.baseline.jsonc index 9bab597a12901..30118356dafce 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport.baseline.jsonc @@ -1,296 +1,243 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export default function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|]() {}|> + // === /tests/cases/fourslash/b.ts === -// import [|g|] from "./a"; -// [|g|](); +// <|import [|{| defId: 1, isWriteAccess: true |}g|] from "./a";|> +// [|{| defId: 1 |}g|](); -// === /tests/cases/fourslash/a.ts === -// export default function /*FIND ALL REFS*/[|f|]() {} + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export default function /*FIND ALL REFS*/[|{| defId: 0 |}f|]() {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /tests/cases/fourslash/b.ts === + // <|import [|{| defId: 1 |}g|] from "./a";|> + // g(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import /*FIND ALL REFS*/[|g|] from "./a"; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}g|] from "./a";|> // [|g|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import /*FIND ALL REFS*/[|g|] from "./a";|> + // g(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|export default function [|f|]() {}|> + +// === /tests/cases/fourslash/b.ts === +// import g from "./a"; +// /*GOTO DEF*/[|g|](); + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport01.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport01.baseline.jsonc index 86bc0b0db47a0..6fd78c9a89700 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport01.baseline.jsonc @@ -1,293 +1,173 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === -// /*FIND ALL REFS*/export default class [|DefaultExportedClass|] { -// } +// /*FIND ALL REFS*/<|export default class [|{| isWriteAccess: true, isDefinition: true |}DefaultExportedClass|] { +// }|> // // var x: [|DefaultExportedClass|]; // // var y = new [|DefaultExportedClass|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "kind": "class", - "name": "class DefaultExportedClass", - "textSpan": { - "start": 21, - "length": 20 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 54, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === + // /*FIND ALL REFS*/<|export default class [|DefaultExportedClass|] { + // }|> + // + // var x: DefaultExportedClass; + // + // var y = new DefaultExportedClass; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class DefaultExportedClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === -// export default class /*FIND ALL REFS*/[|DefaultExportedClass|] { -// } +// <|export default class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}DefaultExportedClass|] { +// }|> // // var x: [|DefaultExportedClass|]; // // var y = new [|DefaultExportedClass|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "kind": "class", - "name": "class DefaultExportedClass", - "textSpan": { - "start": 21, - "length": 20 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 54, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === + // <|export default class /*FIND ALL REFS*/[|DefaultExportedClass|] { + // }|> + // + // var x: DefaultExportedClass; + // + // var y = new DefaultExportedClass; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class DefaultExportedClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === -// export default class [|DefaultExportedClass|] { -// } +// <|export default class [|{| isWriteAccess: true |}DefaultExportedClass|] { +// }|> // // var x: /*FIND ALL REFS*/[|DefaultExportedClass|]; // // var y = new [|DefaultExportedClass|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "kind": "class", - "name": "class DefaultExportedClass", - "textSpan": { - "start": 21, - "length": 20 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 54, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 89, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === + // <|export default class [|DefaultExportedClass|] { + // }|> + // + // var x: /*FIND ALL REFS*/DefaultExportedClass; + // + // var y = new DefaultExportedClass; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class DefaultExportedClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === -// export default class [|DefaultExportedClass|] { -// } +// <|export default class [|{| isWriteAccess: true |}DefaultExportedClass|] { +// }|> // // var x: [|DefaultExportedClass|]; // // var y = new /*FIND ALL REFS*/[|DefaultExportedClass|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "kind": "class", - "name": "class DefaultExportedClass", - "textSpan": { - "start": 21, - "length": 20 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 54, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 89, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport01.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport01.ts === + // <|export default class [|DefaultExportedClass|] { + // }|> + // + // var x: DefaultExportedClass; + // + // var y = new /*FIND ALL REFS*/DefaultExportedClass; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class DefaultExportedClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport02.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport02.baseline.jsonc index b3d656431956c..a3f81ae3f2028 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport02.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport02.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === -// /*FIND ALL REFS*/export default function [|DefaultExportedFunction|]() { +// /*FIND ALL REFS*/<|export default function [|{| isWriteAccess: true, isDefinition: true |}DefaultExportedFunction|]() { // return [|DefaultExportedFunction|]; -// } +// }|> // // var x: typeof [|DefaultExportedFunction|]; // @@ -10,134 +11,98 @@ // namespace DefaultExportedFunction { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 0, - "length": 89 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 63, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 105, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 139, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // /*FIND ALL REFS*/<|export default function [|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // namespace DefaultExportedFunction { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === -// export default function /*FIND ALL REFS*/[|DefaultExportedFunction|]() { +// <|export default function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}DefaultExportedFunction|]() { // return [|DefaultExportedFunction|]; -// } +// }|> // // var x: typeof [|DefaultExportedFunction|]; // @@ -146,134 +111,98 @@ // namespace DefaultExportedFunction { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 0, - "length": 89 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 63, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 105, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 139, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function /*FIND ALL REFS*/[|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // namespace DefaultExportedFunction { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === -// export default function [|DefaultExportedFunction|]() { +// <|export default function [|{| isWriteAccess: true |}DefaultExportedFunction|]() { // return /*FIND ALL REFS*/[|DefaultExportedFunction|]; -// } +// }|> // // var x: typeof [|DefaultExportedFunction|]; // @@ -282,130 +211,98 @@ // namespace DefaultExportedFunction { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 0, - "length": 89 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 63, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 105, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 139, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function [|DefaultExportedFunction|]() { + // return /*FIND ALL REFS*/DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // namespace DefaultExportedFunction { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === -// export default function [|DefaultExportedFunction|]() { +// <|export default function [|{| isWriteAccess: true |}DefaultExportedFunction|]() { // return [|DefaultExportedFunction|]; -// } +// }|> // // var x: typeof /*FIND ALL REFS*/[|DefaultExportedFunction|]; // @@ -414,130 +311,98 @@ // namespace DefaultExportedFunction { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 0, - "length": 89 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 63, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 105, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 139, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function [|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof /*FIND ALL REFS*/DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // namespace DefaultExportedFunction { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === -// export default function [|DefaultExportedFunction|]() { +// <|export default function [|{| isWriteAccess: true |}DefaultExportedFunction|]() { // return [|DefaultExportedFunction|]; -// } +// }|> // // var x: typeof [|DefaultExportedFunction|]; // @@ -546,126 +411,94 @@ // namespace DefaultExportedFunction { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 0, - "length": 89 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 63, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 105, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 139, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function [|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = /*FIND ALL REFS*/DefaultExportedFunction(); + // + // namespace DefaultExportedFunction { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function DefaultExportedFunction(): () => typeof DefaultExportedFunction", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === // export default function DefaultExportedFunction() { // return DefaultExportedFunction; @@ -675,58 +508,49 @@ // // var y = DefaultExportedFunction(); // -// /*FIND ALL REFS*/namespace [|DefaultExportedFunction|] { -// } +// /*FIND ALL REFS*/<|namespace [|{| isWriteAccess: true, isDefinition: true |}DefaultExportedFunction|] { +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function [|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // /*FIND ALL REFS*/namespace DefaultExportedFunction { + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "namespace DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 177, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 167, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace DefaultExportedFunction", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === // export default function DefaultExportedFunction() { // return DefaultExportedFunction; @@ -736,54 +560,42 @@ // // var y = DefaultExportedFunction(); // -// namespace /*FIND ALL REFS*/[|DefaultExportedFunction|] { -// } +// <|namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}DefaultExportedFunction|] { +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport02.ts === + // <|export default function [|DefaultExportedFunction|]() { + // return DefaultExportedFunction; + // }|> + // + // var x: typeof DefaultExportedFunction; + // + // var y = DefaultExportedFunction(); + // + // namespace /*FIND ALL REFS*/DefaultExportedFunction { + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "kind": "function", - "name": "namespace DefaultExportedFunction", - "textSpan": { - "start": 24, - "length": 23 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedFunction", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 89 - } - }, - "references": [ - { - "textSpan": { - "start": 177, - "length": 23 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport02.ts", - "contextSpan": { - "start": 167, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace DefaultExportedFunction", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedFunction", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport03.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport03.baseline.jsonc index dab7f85c48bb3..40c33fa2a5c9e 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport03.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport03.baseline.jsonc @@ -1,1131 +1,749 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// /*FIND ALL REFS*/function [|f|]() { +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true, isDefinition: true |}f|] { // var local = 100; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // /*FIND ALL REFS*/<|function [|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof f; + // + // var y = f(); + // + // namespace f { + // var local = 100; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function /*FIND ALL REFS*/[|f|]() { +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true, isDefinition: true |}f|] { // var local = 100; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function /*FIND ALL REFS*/[|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof f; + // + // var y = f(); + // + // namespace f { + // var local = 100; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true |}f|]() { // return 100; -// } +// }|> // -// /*FIND ALL REFS*/export default [|f|]; +// /*FIND ALL REFS*/<|export default [|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true |}f|] { // var local = 100; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // /*FIND ALL REFS*/export default f; + // + // var x: typeof f; + // + // var y = f(); + // + // namespace f { + // var local = 100; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true |}f|]() { // return 100; -// } +// }|> // -// export default /*FIND ALL REFS*/[|f|]; +// <|export default /*FIND ALL REFS*/[|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true |}f|] { // var local = 100; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // export default /*FIND ALL REFS*/f; + // + // var x: typeof f; + // + // var y = f(); + // + // namespace f { + // var local = 100; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof /*FIND ALL REFS*/[|f|]; // // var y = [|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true |}f|] { // var local = 100; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof /*FIND ALL REFS*/f; + // + // var y = f(); + // + // namespace f { + // var local = 100; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof [|f|]; // // var y = /*FIND ALL REFS*/[|f|](); // -// namespace [|f|] { +// <|namespace [|{| isWriteAccess: true |}f|] { // var local = 100; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof f; + // + // var y = /*FIND ALL REFS*/f(); + // + // namespace f { + // var local = 100; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true, isDefinition: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// /*FIND ALL REFS*/namespace [|f|] { +// /*FIND ALL REFS*/<|namespace [|{| isWriteAccess: true, isDefinition: true |}f|] { // var local = 100; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof f; + // + // var y = f(); + // + // /*FIND ALL REFS*/namespace f { + // var local = 100; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === -// function [|f|]() { +// <|function [|{| isWriteAccess: true, isDefinition: true |}f|]() { // return 100; -// } +// }|> // -// export default [|f|]; +// <|export default [|f|];|> // // var x: typeof [|f|]; // // var y = [|f|](); // -// namespace /*FIND ALL REFS*/[|f|] { +// <|namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|] { // var local = 100; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport03.ts === + // <|function [|f|]() { + // return 100; + // }|> + // + // export default f; + // + // var x: typeof f; + // + // var y = f(); + // + // namespace /*FIND ALL REFS*/f { + // var local = 100; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "kind": "function", - "name": "namespace f\nfunction f(): number", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 34, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport03.ts", - "contextSpan": { - "start": 85, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace f\nfunction f(): number", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport04.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport04.baseline.jsonc index 53cb233f3c57d..4324bf2c083fc 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport04.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport04.baseline.jsonc @@ -1,978 +1,727 @@ +// === findAllReferences === // === /a.ts === -// const /*FIND ALL REFS*/[|a|] = 0; -// export default [|a|]; +// <|const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] = 0;|> +// <|export default [|{| defId: 0 |}a|];|> // === /b.ts === -// import [|a|] from "./a"; -// [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const a: 0", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 13, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|import [|{| defId: 1, isWriteAccess: true |}a|] from "./a";|> +// [|{| defId: 1 |}a|]; + + // === Definitions === + // === /a.ts === + // <|const /*FIND ALL REFS*/[|{| defId: 0 |}a|] = 0;|> + // export default a; + + // === /b.ts === + // <|import [|{| defId: 1 |}a|] from "./a";|> + // a; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const a: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const a: 0\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// const [|a|] = 0; -// export default /*FIND ALL REFS*/[|a|]; +// <|const [|{| defId: 0, isWriteAccess: true |}a|] = 0;|> +// <|export default /*FIND ALL REFS*/[|{| defId: 0 |}a|];|> // === /b.ts === -// import [|a|] from "./a"; -// [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const a: 0", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 13, - "length": 17 - }, - "isWriteAccess": false - } +// <|import [|{| defId: 1, isWriteAccess: true |}a|] from "./a";|> +// [|{| defId: 1 |}a|]; + + // === Definitions === + // === /a.ts === + // <|const [|{| defId: 0 |}a|] = 0;|> + // export default /*FIND ALL REFS*/a; + + // === /b.ts === + // <|import [|{| defId: 1 |}a|] from "./a";|> + // a; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const a: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const a: 0\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /b.ts === -// import [|a|] from "./a"; -// [|a|]; +// === findAllReferences === // === /a.ts === // const a = 0; -// export /*FIND ALL REFS*/[|default|] a; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) const a: 0\nexport default a", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 13, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 13, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] a;|> + +// === /b.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}a|] from "./a";|> +// [|{| defId: 1 |}a|]; + + // === Definitions === + // === /a.ts === + // const a = 0; + // <|export /*FIND ALL REFS*/default [|{| defId: 0 |}a|];|> + + // === /b.ts === + // <|import [|{| defId: 1 |}a|] from "./a";|> + // a; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nexport default a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const a: 0\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|a|] from "./a"; -// [|a|]; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] from "./a";|> +// [|{| defId: 0 |}a|]; // === /a.ts === // const a = 0; -// export [|default|] a; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const a: 0\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|export [|{| defId: 1, isWriteAccess: true |}default|] a;|> + + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}a|] from "./a";|> + // a; + + // === /a.ts === + // const a = 0; + // <|export default [|{| defId: 1 |}a|];|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) const a: 0\nexport default a", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 13, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 13, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nexport default a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import [|a|] from "./a"; -// /*FIND ALL REFS*/[|a|]; +// <|import [|{| defId: 0, isWriteAccess: true |}a|] from "./a";|> +// /*FIND ALL REFS*/[|{| defId: 0 |}a|]; // === /a.ts === // const a = 0; -// export [|default|] a; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const a: 0\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } +// <|export [|{| defId: 1, isWriteAccess: true |}default|] a;|> + + // === Definitions === + // === /b.ts === + // <|import [|{| defId: 0 |}a|] from "./a";|> + // /*FIND ALL REFS*/a; + + // === /a.ts === + // const a = 0; + // <|export default [|{| defId: 1 |}a|];|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) const a: 0\nexport default a", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 13, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 13, - "length": 17 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const a: 0\nexport default a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport08.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport08.baseline.jsonc index 11a41d244c28b..b604361c04d41 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport08.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport08.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultExport08.ts === // export default class DefaultExportedClass { // } @@ -6,70 +7,57 @@ // // var y = new DefaultExportedClass; // -// namespace /*FIND ALL REFS*/[|DefaultExportedClass|] { -// } +// <|namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}DefaultExportedClass|] { +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultExport08.ts === + // <|export default class [|DefaultExportedClass|] { + // }|> + // + // var x: DefaultExportedClass; + // + // var y = new DefaultExportedClass; + // + // namespace /*FIND ALL REFS*/DefaultExportedClass { + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport08.ts", - "kind": "class", - "name": "class DefaultExportedClass\nnamespace DefaultExportedClass", - "textSpan": { - "start": 21, - "length": 20 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "moduleName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DefaultExportedClass", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 122, - "length": 20 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultExport08.ts", - "contextSpan": { - "start": 112, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class DefaultExportedClass\nnamespace DefaultExportedClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "moduleName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DefaultExportedClass", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport09.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport09.baseline.jsonc index 325c57d3945af..f06a5eef94203 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport09.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport09.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /foo.ts === -// import * as /*FIND ALL REFS*/[|a|] from "./a.js" +// <|import * as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}a|] from "./a.js"|> // import aDefault from "./a.js" // import * as b from "./b.js" // import bDefault from "./b.js" @@ -9,58 +10,48 @@ // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import a", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // <|import * as /*FIND ALL REFS*/[|a|] from "./a.js"|> + // import aDefault from "./a.js" + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // import * as c from "./c" + // import cDefault from "./c" + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import a", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" -// import /*FIND ALL REFS*/[|aDefault|] from "./a.js" +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}aDefault|] from "./a.js"|> // import * as b from "./b.js" // import bDefault from "./b.js" // @@ -69,59 +60,49 @@ // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import aDefault", - "textSpan": { - "start": 35, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "aDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 28, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 28, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // <|import /*FIND ALL REFS*/[|aDefault|] from "./a.js"|> + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // import * as c from "./c" + // import cDefault from "./c" + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import aDefault", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "aDefault", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" -// import * as /*FIND ALL REFS*/[|b|] from "./b.js" +// <|import * as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}b|] from "./b.js"|> // import bDefault from "./b.js" // // import * as c from "./c" @@ -129,175 +110,145 @@ // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import b", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 58, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 58, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // <|import * as /*FIND ALL REFS*/[|b|] from "./b.js"|> + // import bDefault from "./b.js" + // + // import * as c from "./c" + // import cDefault from "./c" + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import b", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" // import * as b from "./b.js" -// import /*FIND ALL REFS*/[|bDefault|] from "./b.js" +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bDefault|] from "./b.js"|> // // import * as c from "./c" // import cDefault from "./c" // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import bDefault", - "textSpan": { - "start": 93, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 86, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 86, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // import * as b from "./b.js" + // <|import /*FIND ALL REFS*/[|bDefault|] from "./b.js"|> + // + // import * as c from "./c" + // import cDefault from "./c" + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import bDefault", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bDefault", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" // import * as b from "./b.js" // import bDefault from "./b.js" // -// import * as /*FIND ALL REFS*/[|c|] from "./c" +// <|import * as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}c|] from "./c"|> // import cDefault from "./c" // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import c", - "textSpan": { - "start": 129, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 117, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 117, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // <|import * as /*FIND ALL REFS*/[|c|] from "./c"|> + // import cDefault from "./c" + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import c", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" @@ -305,59 +256,49 @@ // import bDefault from "./b.js" // // import * as c from "./c" -// import /*FIND ALL REFS*/[|cDefault|] from "./c" +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}cDefault|] from "./c"|> // import * as d from "./d" // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import cDefault", - "textSpan": { - "start": 149, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 142, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 149, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 142, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // import * as c from "./c" + // <|import /*FIND ALL REFS*/[|cDefault|] from "./c"|> + // import * as d from "./d" + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import cDefault", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cDefault", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" @@ -366,58 +307,48 @@ // // import * as c from "./c" // import cDefault from "./c" -// import * as /*FIND ALL REFS*/[|d|] from "./d" +// <|import * as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}d|] from "./d"|> // import dDefault from "./d" -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import d", - "textSpan": { - "start": 181, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "d", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 169, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 181, - "length": 1 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 169, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // import * as c from "./c" + // import cDefault from "./c" + // <|import * as /*FIND ALL REFS*/[|d|] from "./d"|> + // import dDefault from "./d" + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import d", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "d", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo.ts === // import * as a from "./a.js" // import aDefault from "./a.js" @@ -427,53 +358,40 @@ // import * as c from "./c" // import cDefault from "./c" // import * as d from "./d" -// import /*FIND ALL REFS*/[|dDefault|] from "./d" - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo.ts", - "kind": "alias", - "name": "import dDefault", - "textSpan": { - "start": 201, - "length": 8 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "dDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 194, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 201, - "length": 8 - }, - "fileName": "/foo.ts", - "contextSpan": { - "start": 194, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}dDefault|] from "./d"|> + + // === Definitions === + // === /foo.ts === + // import * as a from "./a.js" + // import aDefault from "./a.js" + // import * as b from "./b.js" + // import bDefault from "./b.js" + // + // import * as c from "./c" + // import cDefault from "./c" + // import * as d from "./d" + // <|import /*FIND ALL REFS*/[|dDefault|] from "./d"|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import dDefault", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "dDefault", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExportAnonymous.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExportAnonymous.baseline.jsonc index 1fefc3dd46bd5..5da9cc20eaa14 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExportAnonymous.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExportAnonymous.baseline.jsonc @@ -1,233 +1,167 @@ +// === findAllReferences === // === /a.ts === -// export /*FIND ALL REFS*/[|default|] function() {} +// <|export /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] function() {}|> // === /b.ts === -// import [|f|] from "./a"; +// <|import [|{| defId: 1, isWriteAccess: true |}f|] from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function default(): void", - "textSpan": { - "start": 0, - "length": 28 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.ts === + // [|{| defId: 0 |}export /*FIND ALL REFS*/default function() {}|] + + // === /b.ts === + // <|import [|{| defId: 1 |}f|] from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function default(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "import f", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import f", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|f|] from "./a"; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|] from "./a";|> // === /a.ts === -// export [|default|] function() {} +// <|export [|{| defId: 1, isWriteAccess: true |}default|] function() {}|> + + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}f|] from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "import f", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /a.ts === + // [|{| defId: 1 |}export default function() {}|] + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import f", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function default(): void", - "textSpan": { - "start": 0, - "length": 28 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function default(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /b.ts === +// <|import /*RENAME*/[|fRENAME|] from "./a";|> \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport_anonymous.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport_anonymous.baseline.jsonc index a3c930d97521c..8ca421b4a823d 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport_anonymous.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport_anonymous.baseline.jsonc @@ -1,116 +1,79 @@ +// === findAllReferences === // === /a.ts === -// export /*FIND ALL REFS*/[|default|] 1; +// <|export /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] 1;|> // === /b.ts === -// import [|a|] from "./a"; +// <|import [|{| defId: 1, isWriteAccess: true |}a|] from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "property", - "name": "(property) default: 1", - "textSpan": { - "start": 0, - "length": 17 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 7 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.ts === + // [|{| defId: 0 |}export /*FIND ALL REFS*/default 1;|] + + // === /b.ts === + // <|import [|{| defId: 1 |}a|] from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) default: 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "import a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import a", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport_reExport.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport_reExport.baseline.jsonc index fcfe4f7f6b53f..9227b423c68e9 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport_reExport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport_reExport.baseline.jsonc @@ -1,1051 +1,761 @@ +// === findAllReferences === // === /export.ts === -// const /*FIND ALL REFS*/[|foo|] = 1; -// export default [|foo|]; +// <|const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] = 1;|> +// <|export default [|{| defId: 0 |}foo|];|> + +// === /re-export.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> // === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// <|import [|{| defId: 2, isWriteAccess: true |}fooDefault|] from "./re-export";|> -// === /re-export.ts === -// export { [|default|] } from "./export"; + // === Definitions === + // === /export.ts === + // <|const /*FIND ALL REFS*/[|{| defId: 0 |}foo|] = 1;|> + // export default foo; + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === /re-export-dep.ts === + // <|import [|{| defId: 2 |}fooDefault|] from "./re-export";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /export.ts === -// const [|foo|] = 1; -// export default /*FIND ALL REFS*/[|foo|]; +// <|const [|{| defId: 0, isWriteAccess: true |}foo|] = 1;|> +// <|export default /*FIND ALL REFS*/[|{| defId: 0 |}foo|];|> + +// === /re-export.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> // === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// <|import [|{| defId: 2, isWriteAccess: true |}fooDefault|] from "./re-export";|> -// === /re-export.ts === -// export { [|default|] } from "./export"; + // === Definitions === + // === /export.ts === + // <|const [|{| defId: 0 |}foo|] = 1;|> + // export default /*FIND ALL REFS*/foo; + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 19 - }, - "isWriteAccess": false - } + // === /re-export-dep.ts === + // <|import [|{| defId: 2 |}fooDefault|] from "./re-export";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - } -] + } + ] -// === /export.ts === -// const [|foo|] = 1; -// export default [|foo|]; -// === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// === findAllReferences === // === /re-export.ts === -// export { /*FIND ALL REFS*/[|default|] } from "./export"; +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /re-export-dep.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}fooDefault|] from "./re-export";|> + +// === /export.ts === +// <|const [|{| defId: 2, isWriteAccess: true |}foo|] = 1;|> +// <|export default [|{| defId: 2 |}foo|];|> + + // === Definitions === + // === /re-export.ts === + // <|export { /*FIND ALL REFS*/[|{| defId: 0 |}default|] } from "./export";|> + + // === /re-export-dep.ts === + // <|import [|{| defId: 1 |}fooDefault|] from "./re-export";|> + + // === /export.ts === + // <|const [|{| defId: 2 |}foo|] = 1;|> + // export default foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /export.ts === -// const [|foo|] = 1; -// export default [|foo|]; +// === findAllReferences === // === /re-export-dep.ts === -// import /*FIND ALL REFS*/[|fooDefault|] from "./re-export"; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}fooDefault|] from "./re-export";|> // === /re-export.ts === -// export { [|default|] } from "./export"; +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> + +// === /export.ts === +// <|const [|{| defId: 2, isWriteAccess: true |}foo|] = 1;|> +// <|export default [|{| defId: 2 |}foo|];|> + + // === Definitions === + // === /re-export-dep.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}fooDefault|] from "./re-export";|> + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> + + // === /export.ts === + // <|const [|{| defId: 2 |}foo|] = 1;|> + // export default foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultExport_reExport_allowSyntheticDefaultImports.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultExport_reExport_allowSyntheticDefaultImports.baseline.jsonc index 224a614e5aaa6..b17483b014ad9 100644 --- a/tests/baselines/reference/findAllRefsForDefaultExport_reExport_allowSyntheticDefaultImports.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultExport_reExport_allowSyntheticDefaultImports.baseline.jsonc @@ -1,1051 +1,761 @@ +// === findAllReferences === // === /export.ts === -// const /*FIND ALL REFS*/[|foo|] = 1; -// export = [|foo|]; +// <|const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] = 1;|> +// <|export = [|{| defId: 0 |}foo|];|> + +// === /re-export.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> // === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// <|import [|{| defId: 2, isWriteAccess: true |}fooDefault|] from "./re-export";|> -// === /re-export.ts === -// export { [|default|] } from "./export"; + // === Definitions === + // === /export.ts === + // <|const /*FIND ALL REFS*/[|{| defId: 0 |}foo|] = 1;|> + // export = foo; + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === /re-export-dep.ts === + // <|import [|{| defId: 2 |}fooDefault|] from "./re-export";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /export.ts === -// const [|foo|] = 1; -// export = /*FIND ALL REFS*/[|foo|]; +// <|const [|{| defId: 0, isWriteAccess: true |}foo|] = 1;|> +// <|export = /*FIND ALL REFS*/[|{| defId: 0 |}foo|];|> + +// === /re-export.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> // === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// <|import [|{| defId: 2, isWriteAccess: true |}fooDefault|] from "./re-export";|> -// === /re-export.ts === -// export { [|default|] } from "./export"; + // === Definitions === + // === /export.ts === + // <|const [|{| defId: 0 |}foo|] = 1;|> + // export = /*FIND ALL REFS*/foo; + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 13 - }, - "isWriteAccess": false - } + // === /re-export-dep.ts === + // <|import [|{| defId: 2 |}fooDefault|] from "./re-export";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - } -] + } + ] -// === /export.ts === -// const [|foo|] = 1; -// export = [|foo|]; -// === /re-export-dep.ts === -// import [|fooDefault|] from "./re-export"; +// === findAllReferences === // === /re-export.ts === -// export { /*FIND ALL REFS*/[|default|] } from "./export"; +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] } from "./export";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /re-export-dep.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}fooDefault|] from "./re-export";|> + +// === /export.ts === +// <|const [|{| defId: 2, isWriteAccess: true |}foo|] = 1;|> +// <|export = [|{| defId: 2 |}foo|];|> + + // === Definitions === + // === /re-export.ts === + // <|export { /*FIND ALL REFS*/[|{| defId: 0 |}default|] } from "./export";|> + + // === /re-export-dep.ts === + // <|import [|{| defId: 1 |}fooDefault|] from "./re-export";|> + + // === /export.ts === + // <|const [|{| defId: 2 |}foo|] = 1;|> + // export = foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /export.ts === -// const [|foo|] = 1; -// export = [|foo|]; +// === findAllReferences === // === /re-export-dep.ts === -// import /*FIND ALL REFS*/[|fooDefault|] from "./re-export"; +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}fooDefault|] from "./re-export";|> // === /re-export.ts === -// export { [|default|] } from "./export"; +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./export";|> + +// === /export.ts === +// <|const [|{| defId: 2, isWriteAccess: true |}foo|] = 1;|> +// <|export = [|{| defId: 2 |}foo|];|> + + // === Definitions === + // === /re-export-dep.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}fooDefault|] from "./re-export";|> + + // === /re-export.ts === + // <|export { [|{| defId: 1 |}default|] } from "./export";|> + + // === /export.ts === + // <|const [|{| defId: 2 |}foo|] = 1;|> + // export = foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export-dep.ts", - "kind": "alias", - "name": "(alias) const fooDefault: 1\nimport fooDefault", - "textSpan": { - "start": 7, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooDefault", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/re-export-dep.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const fooDefault: 1\nimport fooDefault", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooDefault", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/re-export.ts", - "kind": "alias", - "name": "(alias) const foo: 1\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/re-export.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const foo: 1\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/export.ts", - "kind": "const", - "name": "const foo: 1", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/export.ts", - "contextSpan": { - "start": 15, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const foo: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForDefaultKeyword.baseline.jsonc b/tests/baselines/reference/findAllRefsForDefaultKeyword.baseline.jsonc index 66796fd0895f2..7c6c8c88bbd62 100644 --- a/tests/baselines/reference/findAllRefsForDefaultKeyword.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForDefaultKeyword.baseline.jsonc @@ -1,11 +1,68 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === +// function f(value: string, /*FIND ALL REFS*/default: string) {} +// +// const default = 1; +// +// function default() {} +// +// class default {} +// +// const foo = { +// default: 1 +// } -undefined -undefined -undefined +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === +// function f(value: string, default: string) {} +// +// const /*FIND ALL REFS*/default = 1; +// +// function default() {} +// +// class default {} +// +// const foo = { +// default: 1 +// } + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === +// function f(value: string, default: string) {} +// +// const default = 1; +// +// function /*FIND ALL REFS*/default() {} +// +// class default {} +// +// const foo = { +// default: 1 +// } + + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === +// function f(value: string, default: string) {} +// +// const default = 1; +// +// function default() {} +// +// class /*FIND ALL REFS*/default {} +// +// const foo = { +// default: 1 +// } + + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === // function f(value: string, default: string) {} // @@ -16,74 +73,63 @@ undefined // class default {} // // const foo = { -// /*FIND ALL REFS*/[|default|]: 1 +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}default|]: 1|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultKeyword.ts", - "kind": "property", - "name": "(property) default: number", - "textSpan": { - "start": 126, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 126, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 126, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForDefaultKeyword.ts", - "contextSpan": { - "start": 126, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForDefaultKeyword.ts === + // function f(value: string, default: string) {} + // + // const default = 1; + // + // function default() {} + // + // class default {} + // + // const foo = { + // /*FIND ALL REFS*/<|[|default|]: 1|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) default: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForFunctionExpression01.baseline.jsonc b/tests/baselines/reference/findAllRefsForFunctionExpression01.baseline.jsonc index ec248a4b426a5..9e043f4399b0c 100644 --- a/tests/baselines/reference/findAllRefsForFunctionExpression01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForFunctionExpression01.baseline.jsonc @@ -1,1804 +1,1411 @@ +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = /*FIND ALL REFS*/function [|foo|](a = [|foo|](), b = () => [|foo|]) { +// var foo = /*FIND ALL REFS*/<|function [|{| isWriteAccess: true |}foo|](a = [|foo|](), b = () => [|foo|]) { // [|foo|]([|foo|], [|foo|]); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = /*FIND ALL REFS*/<|function [|foo|](a = foo(), b = () => foo) { + // foo(foo, foo); + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function /*FIND ALL REFS*/[|foo|](a = [|foo|](), b = () => [|foo|]) { +// var foo = <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](a = [|foo|](), b = () => [|foo|]) { // [|foo|]([|foo|], [|foo|]); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function /*FIND ALL REFS*/[|foo|](a = foo(), b = () => foo) { + // foo(foo, foo); + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function [|foo|](a = /*FIND ALL REFS*/[|foo|](), b = () => [|foo|]) { +// var foo = <|function [|{| isWriteAccess: true |}foo|](a = /*FIND ALL REFS*/[|foo|](), b = () => [|foo|]) { // [|foo|]([|foo|], [|foo|]); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function [|foo|](a = /*FIND ALL REFS*/foo(), b = () => foo) { + // foo(foo, foo); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function [|foo|](a = [|foo|](), b = () => /*FIND ALL REFS*/[|foo|]) { +// var foo = <|function [|{| isWriteAccess: true |}foo|](a = [|foo|](), b = () => /*FIND ALL REFS*/[|foo|]) { // [|foo|]([|foo|], [|foo|]); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function [|foo|](a = foo(), b = () => /*FIND ALL REFS*/foo) { + // foo(foo, foo); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function [|foo|](a = [|foo|](), b = () => [|foo|]) { +// var foo = <|function [|{| isWriteAccess: true |}foo|](a = [|foo|](), b = () => [|foo|]) { // /*FIND ALL REFS*/[|foo|]([|foo|], [|foo|]); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function [|foo|](a = foo(), b = () => foo) { + // /*FIND ALL REFS*/foo(foo, foo); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function [|foo|](a = [|foo|](), b = () => [|foo|]) { +// var foo = <|function [|{| isWriteAccess: true |}foo|](a = [|foo|](), b = () => [|foo|]) { // [|foo|](/*FIND ALL REFS*/[|foo|], [|foo|]); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function [|foo|](a = foo(), b = () => foo) { + // foo(/*FIND ALL REFS*/foo, foo); + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === -// var foo = function [|foo|](a = [|foo|](), b = () => [|foo|]) { +// var foo = <|function [|{| isWriteAccess: true |}foo|](a = [|foo|](), b = () => [|foo|]) { // [|foo|]([|foo|], /*FIND ALL REFS*/[|foo|]); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // var foo = <|function [|foo|](a = foo(), b = () => foo) { + // foo(foo, /*FIND ALL REFS*/foo); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "local function", - "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 10, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) foo(a?: void, b?: () => (a?: void, b?: ...) => void): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForImportCall.baseline.jsonc b/tests/baselines/reference/findAllRefsForImportCall.baseline.jsonc index a64732cd61503..d23cf0f2dd56e 100644 --- a/tests/baselines/reference/findAllRefsForImportCall.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForImportCall.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /app.ts === -// export function [|he/*FIND ALL REFS*/llo|]() {}; +// <|export function [|{| isWriteAccess: true, isDefinition: true |}he/*FIND ALL REFS*/llo|]() {}|>; // === /indirect-use.ts === // import("./re-export").then(mod => mod.services.app.[|hello|]()); @@ -10,89 +11,50 @@ // mod.[|hello|](); // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "function", - "name": "function hello(): void", - "textSpan": { - "start": 16, - "length": 5 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "hello", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 5 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 51, - "length": 5 - }, - "fileName": "/indirect-use.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 70, - "length": 5 - }, - "fileName": "/direct-use.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /app.ts === + // <|export function [|he/*FIND ALL REFS*/llo|]() {}|>; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function hello(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForImportCallType.baseline.jsonc b/tests/baselines/reference/findAllRefsForImportCallType.baseline.jsonc index 0ffe79597f375..7ec38d7f4d2d6 100644 --- a/tests/baselines/reference/findAllRefsForImportCallType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForImportCallType.baseline.jsonc @@ -1,85 +1,56 @@ +// === findAllReferences === // === /app.ts === -// export function [|he/*FIND ALL REFS*/llo|]() {}; +// <|export function [|{| isWriteAccess: true, isDefinition: true |}he/*FIND ALL REFS*/llo|]() {}|>; // === /indirect-use.ts === // import type { app } from "./re-export"; // declare const app: app // app.[|hello|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "function", - "name": "function hello(): void", - "textSpan": { - "start": 16, - "length": 5 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "hello", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 5 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 5 - }, - "fileName": "/indirect-use.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /app.ts === + // <|export function [|he/*FIND ALL REFS*/llo|]() {}|>; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function hello(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForMappedType.baseline.jsonc b/tests/baselines/reference/findAllRefsForMappedType.baseline.jsonc index 5e6dc75bbff23..b70e79850e1b9 100644 --- a/tests/baselines/reference/findAllRefsForMappedType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForMappedType.baseline.jsonc @@ -1,109 +1,67 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForMappedType.ts === -// interface T { /*FIND ALL REFS*/[|a|]: number }; +// interface T { /*FIND ALL REFS*/<|[|{| isDefinition: true |}a|]: number|> }; // type U = { [K in keyof T]: string }; // type V = { [K in keyof U]: boolean }; -// const u: U = { [|a|]: "" } -// const v: V = { [|a|]: true } +// const u: U = { <|[|{| isWriteAccess: true |}a|]: ""|> } +// const v: V = { <|[|{| isWriteAccess: true |}a|]: true|> } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForMappedType.ts", - "kind": "property", - "name": "(property) T.a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForMappedType.ts", - "contextSpan": { - "start": 14, - "length": 9 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 117, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForMappedType.ts", - "contextSpan": { - "start": 117, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForMappedType.ts", - "contextSpan": { - "start": 140, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForMappedType.ts === + // interface T { /*FIND ALL REFS*/<|[|a|]: number|> }; + // type U = { [K in keyof T]: string }; + // type V = { [K in keyof U]: boolean }; + // const u: U = { a: "" } + // const v: V = { a: true } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) T.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForModule.baseline.jsonc b/tests/baselines/reference/findAllRefsForModule.baseline.jsonc index f90b4a54451c1..b2fbd06179fe9 100644 --- a/tests/baselines/reference/findAllRefsForModule.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForModule.baseline.jsonc @@ -1,218 +1,168 @@ +// === findAllReferences === // === /b.ts === -// import { x } from "/*FIND ALL REFS*/[|./a|]"; +// <|import { x } from "/*FIND ALL REFS*/[|./a|]";|> // === /c/sub.js === -// const a = require("[|../a|]"); +// <|const a = require("[|../a|]");|> // === /d.ts === // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 4 - }, - "fileName": "/c/sub.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 21, - "length": 6 - }, - "fileName": "/d.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|export const x = 0;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x } from "[|./a|]"; +// <|import { x } from "[|./a|]";|> // === /c/sub.js === -// const a = require("/*FIND ALL REFS*/[|../a|]"); +// <|const a = require("/*FIND ALL REFS*/[|../a|]");|> // === /d.ts === // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 4 - }, - "fileName": "/c/sub.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 21, - "length": 6 - }, - "fileName": "/d.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|export const x = 0;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x } from "[|./a|]"; +// <|import { x } from "[|./a|]";|> // === /c/sub.js === -// const a = require("[|../a|]"); +// <|const a = require("[|../a|]");|> // === /d.ts === // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 4 - }, - "fileName": "/c/sub.js", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 21, - "length": 6 - }, - "fileName": "/d.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|export const x = 0;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] + + + +// === documentHighlights === +// filesToSearch: +// /b.ts +// /c/sub.js +// /d.ts + +// === /b.ts === +// <|import { x } from "/*HIGHLIGHTS*/[|{| kind: "reference" |}./a|]";|> + +// === /c/sub.js === +// <|const a = require("[|{| kind: "reference" |}../a|]");|> + +// === /d.ts === +// /// + + + +// === documentHighlights === +// filesToSearch: +// /b.ts +// /c/sub.js +// /d.ts + +// === /b.ts === +// <|import { x } from "[|{| kind: "reference" |}./a|]";|> + +// === /c/sub.js === +// <|const a = require("/*HIGHLIGHTS*/[|{| kind: "reference" |}../a|]");|> + +// === /d.ts === +// /// + + + +// === documentHighlights === +// filesToSearch: +// /b.ts +// /c/sub.js +// /d.ts + +// === /b.ts === +// <|import { x } from "[|{| kind: "reference" |}./a|]";|> + +// === /c/sub.js === +// <|const a = require("[|{| kind: "reference" |}../a|]");|> + +// === /d.ts === +// /// \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForModuleGlobal.baseline.jsonc b/tests/baselines/reference/findAllRefsForModuleGlobal.baseline.jsonc index 9f2d2b9539b49..1b57eb5056d92 100644 --- a/tests/baselines/reference/findAllRefsForModuleGlobal.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForModuleGlobal.baseline.jsonc @@ -1,68 +1,33 @@ +// === findAllReferences === // === /b.ts === // /// -// import { x } from "/*FIND ALL REFS*/[|foo|]"; -// declare module "[|foo|]" {} +// <|import { x } from "/*FIND ALL REFS*/[|foo|]";|> +// <|declare module "[|{| isWriteAccess: true |}foo|]" {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/foo/index.d.ts", - "kind": "module", - "name": "module \"/node_modules/foo/index\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/node_modules/foo/index\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 3 - }, - "fileName": "/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 49, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 30, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 71, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 55, - "length": 23 - }, - "isWriteAccess": true - } + // === Definitions === + // === /node_modules/foo/index.d.ts === + // [|export const x = 0;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/node_modules/foo/index\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/node_modules/foo/index\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForObjectLiteralProperties.baseline.jsonc b/tests/baselines/reference/findAllRefsForObjectLiteralProperties.baseline.jsonc index faa3be878322f..81acdd6790346 100644 --- a/tests/baselines/reference/findAllRefsForObjectLiteralProperties.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForObjectLiteralProperties.baseline.jsonc @@ -1,307 +1,219 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === // var x = { -// /*FIND ALL REFS*/[|property|]: {} +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}property|]: {}|> // }; // // x.[|property|]; // -// let {[|property|]: pVar} = x; +// <|let {[|property|]: pVar} = x;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) property: {}", - "textSpan": { - "start": 14, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 14, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 14, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 49, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 44, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === + // var x = { + // /*FIND ALL REFS*/<|[|property|]: {}|> + // }; + // + // x.property; + // + // let {property: pVar} = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) property: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === // var x = { -// [|property|]: {} +// <|[|{| isWriteAccess: true |}property|]: {}|> // }; // // x./*FIND ALL REFS*/[|property|]; // -// let {[|property|]: pVar} = x; +// <|let {[|property|]: pVar} = x;|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === + // var x = { + // <|[|property|]: {}|> + // }; + // + // x./*FIND ALL REFS*/property; + // + // let {property: pVar} = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) property: {}", - "textSpan": { - "start": 14, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 14, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 14, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 49, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 44, - "length": 25 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) property: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === +// var x = { +// property: {} +// }; +// +// x.property; +// +// /*FIND ALL REFS*/let {property: pVar} = x; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === // var x = { -// [|property|]: {} +// <|[|{| isWriteAccess: true |}property|]: {}|> // }; // // x.[|property|]; // -// let {/*FIND ALL REFS*/[|property|]: pVar} = x; +// <|let {/*FIND ALL REFS*/[|property|]: pVar} = x;|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts === + // var x = { + // <|[|property|]: {}|> + // }; + // + // x.property; + // + // let {/*FIND ALL REFS*/property: pVar} = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) property: {}", - "textSpan": { - "start": 14, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 14, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 14, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 49, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts", - "contextSpan": { - "start": 44, - "length": 25 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) property: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForObjectSpread.baseline.jsonc b/tests/baselines/reference/findAllRefsForObjectSpread.baseline.jsonc index 7ceeafe44f2b2..239e6e66391d1 100644 --- a/tests/baselines/reference/findAllRefsForObjectSpread.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForObjectSpread.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === -// interface A1 { readonly /*FIND ALL REFS*/[|a|]: string }; +// interface A1 { <|readonly /*FIND ALL REFS*/[|{| isDefinition: true |}a|]: string|> }; // interface A2 { a?: number }; // let a1: A1; // let a2: A2; @@ -7,380 +8,279 @@ // a12.[|a|]; // a1.[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "kind": "property", - "name": "(property) A1.a: string", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "contextSpan": { - "start": 15, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === + // interface A1 { <|readonly /*FIND ALL REFS*/[|a|]: string|> }; + // interface A2 { a?: number }; + // let a1: A1; + // let a2: A2; + // let a12 = { ...a1, ...a2 }; + // a12.a; + // a1.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A1.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === // interface A1 { readonly a: string }; -// interface A2 { /*FIND ALL REFS*/[|a|]?: number }; +// interface A2 { /*FIND ALL REFS*/<|[|{| isDefinition: true |}a|]?: number|> }; // let a1: A1; // let a2: A2; // let a12 = { ...a1, ...a2 }; // a12.[|a|]; // a1.a; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "kind": "property", - "name": "(property) A2.a?: number", - "textSpan": { - "start": 52, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "contextSpan": { - "start": 52, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === + // interface A1 { readonly a: string }; + // interface A2 { /*FIND ALL REFS*/<|[|a|]?: number|> }; + // let a1: A1; + // let a2: A2; + // let a12 = { ...a1, ...a2 }; + // a12.a; + // a1.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A2.a?: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === -// interface A1 { readonly [|a|]: string }; -// interface A2 { [|a|]?: number }; +// interface A1 { <|readonly [|{| defId: 0 |}a|]: string|> }; +// interface A2 { <|[|{| defId: 1 |}a|]?: number|> }; // let a1: A1; // let a2: A2; // let a12 = { ...a1, ...a2 }; -// a12./*FIND ALL REFS*/[|a|]; -// a1.[|a|]; +// a12./*FIND ALL REFS*/[|{| defId: 0 |}a|]; +// a1.[|{| defId: 0 |}a|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === + // interface A1 { <|readonly [|{| defId: 0 |}a|]: string|> }; + // interface A2 { <|[|{| defId: 1 |}a|]?: number|> }; + // let a1: A1; + // let a2: A2; + // let a12 = { ...a1, ...a2 }; + // a12./*FIND ALL REFS*/a; + // a1.a; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "kind": "property", - "name": "(property) A1.a: string", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "contextSpan": { - "start": 15, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A1.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "kind": "property", - "name": "(property) A2.a?: number", - "textSpan": { - "start": 52, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "contextSpan": { - "start": 52, - "length": 10 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A2.a?: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === -// interface A1 { readonly [|a|]: string }; +// interface A1 { <|readonly [|a|]: string|> }; // interface A2 { a?: number }; // let a1: A1; // let a2: A2; @@ -388,94 +288,64 @@ // a12.[|a|]; // a1./*FIND ALL REFS*/[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "kind": "property", - "name": "(property) A1.a: string", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "contextSpan": { - "start": 15, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForObjectSpread.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForObjectSpread.ts === + // interface A1 { <|readonly [|a|]: string|> }; + // interface A2 { a?: number }; + // let a1: A1; + // let a2: A2; + // let a12 = { ...a1, ...a2 }; + // a12.a; + // a1./*FIND ALL REFS*/a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A1.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForRest.baseline.jsonc b/tests/baselines/reference/findAllRefsForRest.baseline.jsonc index 38689fb6e9aea..25662eb128daa 100644 --- a/tests/baselines/reference/findAllRefsForRest.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForRest.baseline.jsonc @@ -1,189 +1,149 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForRest.ts === // interface Gen { // x: number -// /*FIND ALL REFS*/[|parent|]: Gen; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}parent|]: Gen;|> // millenial: string; // } // let t: Gen; // var { x, ...rest } = t; // rest.[|parent|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "kind": "property", - "name": "(property) Gen.parent: Gen", - "textSpan": { - "start": 34, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Gen", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "parent", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Gen", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 34, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "contextSpan": { - "start": 34, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 113, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForRest.ts === + // interface Gen { + // x: number + // /*FIND ALL REFS*/<|[|parent|]: Gen;|> + // millenial: string; + // } + // let t: Gen; + // var { x, ...rest } = t; + // rest.parent; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Gen.parent: Gen", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Gen", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "parent", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Gen", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForRest.ts === // interface Gen { // x: number -// [|parent|]: Gen; +// <|[|parent|]: Gen;|> // millenial: string; // } // let t: Gen; // var { x, ...rest } = t; // rest./*FIND ALL REFS*/[|parent|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "kind": "property", - "name": "(property) Gen.parent: Gen", - "textSpan": { - "start": 34, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Gen", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "parent", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Gen", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 34, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "contextSpan": { - "start": 34, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 113, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForRest.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForRest.ts === + // interface Gen { + // x: number + // <|[|parent|]: Gen;|> + // millenial: string; + // } + // let t: Gen; + // var { x, ...rest } = t; + // rest./*FIND ALL REFS*/parent; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Gen.parent: Gen", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Gen", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "parent", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Gen", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForStaticInstanceMethodInheritance.baseline.jsonc b/tests/baselines/reference/findAllRefsForStaticInstanceMethodInheritance.baseline.jsonc index e1010b6d23ca9..951939f3d1570 100644 --- a/tests/baselines/reference/findAllRefsForStaticInstanceMethodInheritance.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForStaticInstanceMethodInheritance.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === // class X{ -// /*FIND ALL REFS*/[|foo|](): void{} +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](): void{}|> // } // // class Y extends X{ @@ -9,219 +10,170 @@ // // class Z extends Y{ // static foo(): void{} -// [|foo|](): void{} +// <|[|{| defId: 1, isWriteAccess: true |}foo|](): void{}|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|](); -// y.[|foo|](); -// z.[|foo|](); +// x.[|{| defId: 0 |}foo|](); +// y.[|{| defId: 0 |}foo|](); +// z.[|{| defId: 1 |}foo|](); // Y.foo(); // Z.foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) X.foo(): void", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 10, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 189, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 198, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === + // class X{ + // /*FIND ALL REFS*/<|[|{| defId: 0 |}foo|](): void{}|> + // } + // + // class Y extends X{ + // static foo(): void{} + // } + // + // class Z extends Y{ + // static foo(): void{} + // <|[|{| defId: 1 |}foo|](): void{}|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo(); + // y.foo(); + // z.foo(); + // Y.foo(); + // Z.foo(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) X.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) Z.foo(): void", - "textSpan": { - "start": 113, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 113, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 113, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 207, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Z.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === // class X{ // foo(): void{} // } // // class Y extends X{ -// static /*FIND ALL REFS*/[|foo|](): void{} +// <|static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](): void{}|> // } // // class Z extends Y{ @@ -238,100 +190,93 @@ // Y.[|foo|](); // Z.foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) Y.foo(): void", - "textSpan": { - "start": 54, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Y", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 47, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 47, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 216, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === + // class X{ + // foo(): void{} + // } + // + // class Y extends X{ + // <|static /*FIND ALL REFS*/[|foo|](): void{}|> + // } + // + // class Z extends Y{ + // static foo(): void{} + // foo(): void{} + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo(); + // y.foo(); + // z.foo(); + // Y.foo(); + // Z.foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Y.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Y", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === // class X{ // foo(): void{} @@ -342,7 +287,7 @@ // } // // class Z extends Y{ -// static /*FIND ALL REFS*/[|foo|](): void{} +// <|static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](): void{}|> // foo(): void{} // } // @@ -355,103 +300,96 @@ // Y.foo(); // Z.[|foo|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) Z.foo(): void", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 91, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 91, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 225, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === + // class X{ + // foo(): void{} + // } + // + // class Y extends X{ + // static foo(): void{} + // } + // + // class Z extends Y{ + // <|static /*FIND ALL REFS*/[|foo|](): void{}|> + // foo(): void{} + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo(); + // y.foo(); + // z.foo(); + // Y.foo(); + // Z.foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Z.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === // class X{ -// [|foo|](): void{} +// <|[|{| defId: 0, isWriteAccess: true |}foo|](): void{}|> // } // // class Y extends X{ @@ -460,208 +398,156 @@ // // class Z extends Y{ // static foo(): void{} -// /*FIND ALL REFS*/[|foo|](): void{} +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}foo|](): void{}|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|](); -// y.[|foo|](); -// z.[|foo|](); +// x.[|{| defId: 0 |}foo|](); +// y.[|{| defId: 0 |}foo|](); +// z.[|{| defId: 1 |}foo|](); // Y.foo(); // Z.foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) X.foo(): void", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 10, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 189, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 198, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts === + // class X{ + // <|[|{| defId: 0 |}foo|](): void{}|> + // } + // + // class Y extends X{ + // static foo(): void{} + // } + // + // class Z extends Y{ + // static foo(): void{} + // /*FIND ALL REFS*/<|[|{| defId: 1 |}foo|](): void{}|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo(); + // y.foo(); + // z.foo(); + // Y.foo(); + // Z.foo(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) X.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "kind": "method", - "name": "(method) Z.foo(): void", - "textSpan": { - "start": 113, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 113, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "contextSpan": { - "start": 113, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 207, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstanceMethodInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Z.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForStaticInstancePropertyInheritance.baseline.jsonc b/tests/baselines/reference/findAllRefsForStaticInstancePropertyInheritance.baseline.jsonc index 8840259881743..6f85a33100445 100644 --- a/tests/baselines/reference/findAllRefsForStaticInstancePropertyInheritance.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForStaticInstancePropertyInheritance.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ -// /*FIND ALL REFS*/[|foo|]:any +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}foo|]:any|> // } // // class Y extends X{ @@ -9,203 +10,154 @@ // // class Z extends Y{ // static foo:any -// [|foo|]:any +// <|[|{| defId: 1 |}foo|]:any|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|]; -// y.[|foo|]; -// z.[|foo|]; +// x.[|{| defId: 0 |}foo|]; +// y.[|{| defId: 0 |}foo|]; +// z.[|{| defId: 1 |}foo|]; // Y.foo; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) X.foo: any", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 165, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 172, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // /*FIND ALL REFS*/<|[|{| defId: 0 |}foo|]:any|> + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // static foo:any + // <|[|{| defId: 1 |}foo|]:any|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) X.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 95, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 95, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 95, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 179, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ // foo:any // } // // class Y extends X{ -// static /*FIND ALL REFS*/[|foo|]:any +// <|static /*FIND ALL REFS*/[|{| isDefinition: true |}foo|]:any|> // } // // class Z extends Y{ @@ -222,92 +174,85 @@ // Y.[|foo|]; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Y.foo: any", - "textSpan": { - "start": 48, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Y", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 41, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 41, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // foo:any + // } + // + // class Y extends X{ + // <|static /*FIND ALL REFS*/[|foo|]:any|> + // } + // + // class Z extends Y{ + // static foo:any + // foo:any + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Y.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Y", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ // foo:any @@ -318,7 +263,7 @@ // } // // class Z extends Y{ -// static /*FIND ALL REFS*/[|foo|]:any +// <|static /*FIND ALL REFS*/[|{| isDefinition: true |}foo|]:any|> // foo:any // } // @@ -331,95 +276,88 @@ // Y.foo; // Z.[|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 79, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 79, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 193, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // foo:any + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // <|static /*FIND ALL REFS*/[|foo|]:any|> + // foo:any + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ -// [|foo|]:any +// <|[|{| defId: 0 |}foo|]:any|> // } // // class Y extends X{ @@ -428,199 +366,150 @@ // // class Z extends Y{ // static foo:any -// /*FIND ALL REFS*/[|foo|]:any +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}foo|]:any|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|]; -// y.[|foo|]; -// z.[|foo|]; +// x.[|{| defId: 0 |}foo|]; +// y.[|{| defId: 0 |}foo|]; +// z.[|{| defId: 1 |}foo|]; // Y.foo; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) X.foo: any", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 165, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 172, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // <|[|{| defId: 0 |}foo|]:any|> + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // static foo:any + // /*FIND ALL REFS*/<|[|{| defId: 1 |}foo|]:any|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) X.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 95, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 95, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 95, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 179, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ -// [|foo|]:any +// <|[|{| defId: 0 |}foo|]:any|> // } // // class Y extends X{ @@ -629,194 +518,150 @@ // // class Z extends Y{ // static foo:any -// [|foo|]:any +// <|[|{| defId: 1 |}foo|]:any|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x./*FIND ALL REFS*/[|foo|]; -// y.[|foo|]; -// z.[|foo|]; +// x./*FIND ALL REFS*/[|{| defId: 0 |}foo|]; +// y.[|{| defId: 0 |}foo|]; +// z.[|{| defId: 1 |}foo|]; // Y.foo; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) X.foo: any", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 165, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 172, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // <|[|{| defId: 0 |}foo|]:any|> + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // static foo:any + // <|[|{| defId: 1 |}foo|]:any|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x./*FIND ALL REFS*/foo; + // y.foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) X.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 95, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 95, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 95, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 179, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ -// [|foo|]:any +// <|[|{| defId: 0 |}foo|]:any|> // } // // class Y extends X{ @@ -825,194 +670,150 @@ // // class Z extends Y{ // static foo:any -// [|foo|]:any +// <|[|{| defId: 1 |}foo|]:any|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|]; -// y./*FIND ALL REFS*/[|foo|]; -// z.[|foo|]; +// x.[|{| defId: 0 |}foo|]; +// y./*FIND ALL REFS*/[|{| defId: 0 |}foo|]; +// z.[|{| defId: 1 |}foo|]; // Y.foo; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) X.foo: any", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 165, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 172, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // <|[|{| defId: 0 |}foo|]:any|> + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // static foo:any + // <|[|{| defId: 1 |}foo|]:any|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y./*FIND ALL REFS*/foo; + // z.foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) X.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 95, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 95, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 95, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 179, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ -// [|foo|]:any +// <|[|{| defId: 0 |}foo|]:any|> // } // // class Y extends X{ @@ -1021,198 +822,154 @@ // // class Z extends Y{ // static foo:any -// [|foo|]:any +// <|[|{| defId: 1 |}foo|]:any|> // } // // const x = new X(); // const y = new Y(); // const z = new Z(); -// x.[|foo|]; -// y.[|foo|]; -// z./*FIND ALL REFS*/[|foo|]; +// x.[|{| defId: 0 |}foo|]; +// y.[|{| defId: 0 |}foo|]; +// z./*FIND ALL REFS*/[|{| defId: 1 |}foo|]; // Y.foo; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) X.foo: any", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 165, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 172, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // <|[|{| defId: 0 |}foo|]:any|> + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // static foo:any + // <|[|{| defId: 1 |}foo|]:any|> + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z./*FIND ALL REFS*/foo; + // Y.foo; + // Z.foo; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) X.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 95, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 95, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 95, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 179, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ // foo:any // } // // class Y extends X{ -// static [|foo|]:any +// <|static [|foo|]:any|> // } // // class Z extends Y{ @@ -1229,90 +986,85 @@ // Y./*FIND ALL REFS*/[|foo|]; // Z.foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Y.foo: any", - "textSpan": { - "start": 48, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Y", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 41, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 41, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // foo:any + // } + // + // class Y extends X{ + // <|static [|foo|]:any|> + // } + // + // class Z extends Y{ + // static foo:any + // foo:any + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y./*FIND ALL REFS*/foo; + // Z.foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Y.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Y", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === // class X{ // foo:any @@ -1323,7 +1075,7 @@ // } // // class Z extends Y{ -// static [|foo|]:any +// <|static [|foo|]:any|> // foo:any // } // @@ -1336,86 +1088,78 @@ // Y.foo; // Z./*FIND ALL REFS*/[|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "kind": "property", - "name": "(property) Z.foo: any", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 79, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "contextSpan": { - "start": 79, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 193, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStaticInstancePropertyInheritance.ts === + // class X{ + // foo:any + // } + // + // class Y extends X{ + // static foo:any + // } + // + // class Z extends Y{ + // <|static [|foo|]:any|> + // foo:any + // } + // + // const x = new X(); + // const y = new Y(); + // const z = new Z(); + // x.foo; + // y.foo; + // z.foo; + // Y.foo; + // Z./*FIND ALL REFS*/foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Z.foo: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForStringLiteral.baseline.jsonc b/tests/baselines/reference/findAllRefsForStringLiteral.baseline.jsonc index 5cfaa3f509c15..53247f721aafc 100644 --- a/tests/baselines/reference/findAllRefsForStringLiteral.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForStringLiteral.baseline.jsonc @@ -1,52 +1,39 @@ +// === findAllReferences === // === /a.ts === // interface Foo { -// property: /*FIND ALL REFS*/"[|foo|]"; +// property: /*FIND ALL REFS*/"[|{| isInString: true |}foo|]"; // } // /** // * @type {{ property: "foo"}} // */ // const obj: Foo = { -// property: "[|foo|]", +// property: "[|{| isInString: true |}foo|]", // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "foo", - "textSpan": { - "start": 31, - "length": 3 - }, - "displayParts": [ - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 3 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isInString": true - }, - { - "textSpan": { - "start": 111, - "length": 3 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isInString": true - } + // === Definitions === + // === /a.ts === + // interface Foo { + // property: /*FIND ALL REFS*/"[|foo|]"; + // } + // /** + // * @type {{ property: "foo"}} + // */ + // const obj: Foo = { + // property: "foo", + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "foo", + "displayParts": [ + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForStringLiteralTypes.baseline.jsonc b/tests/baselines/reference/findAllRefsForStringLiteralTypes.baseline.jsonc index 317390da8868c..699441ea47f9d 100644 --- a/tests/baselines/reference/findAllRefsForStringLiteralTypes.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForStringLiteralTypes.baseline.jsonc @@ -1,91 +1,53 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts === -// type Options = "/*FIND ALL REFS*/[|option 1|]" | "option 2"; -// let myOption: Options = "[|option 1|]"; +// type Options = "/*FIND ALL REFS*/[|{| isInString: true |}option 1|]" | "option 2"; +// let myOption: Options = "[|{| isInString: true |}option 1|]"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "kind": "var", - "name": "option 1", - "textSpan": { - "start": 16, - "length": 8 - }, - "displayParts": [ - { - "text": "\"option 1\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "isWriteAccess": false, - "isInString": true - }, - { - "textSpan": { - "start": 65, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "isWriteAccess": false, - "isInString": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts === + // type Options = "/*FIND ALL REFS*/[|option 1|]" | "option 2"; + // let myOption: Options = "option 1"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "option 1", + "displayParts": [ + { + "text": "\"option 1\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts === -// type Options = "[|option 1|]" | "option 2"; -// let myOption: Options = "/*FIND ALL REFS*/[|option 1|]"; +// type Options = "[|{| isInString: true |}option 1|]" | "option 2"; +// let myOption: Options = "/*FIND ALL REFS*/[|{| isInString: true |}option 1|]"; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts === + // type Options = "option 1" | "option 2"; + // let myOption: Options = "/*FIND ALL REFS*/[|option 1|]"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "kind": "var", - "name": "option 1", - "textSpan": { - "start": 65, - "length": 8 - }, - "displayParts": [ - { - "text": "\"option 1\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "isWriteAccess": false, - "isInString": true - }, - { - "textSpan": { - "start": 65, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForStringLiteralTypes.ts", - "isWriteAccess": false, - "isInString": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "option 1", + "displayParts": [ + { + "text": "\"option 1\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForUMDModuleAlias1.baseline.jsonc b/tests/baselines/reference/findAllRefsForUMDModuleAlias1.baseline.jsonc index 2aa535be80da7..7b15715b380cd 100644 --- a/tests/baselines/reference/findAllRefsForUMDModuleAlias1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForUMDModuleAlias1.baseline.jsonc @@ -1,149 +1,105 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/0.d.ts === +// export function doThing(): string; +// export function doTheOtherThing(): void; +// /*FIND ALL REFS*/export as namespace myLib; + + + +// === findAllReferences === +// === /tests/cases/fourslash/0.d.ts === +// export function doThing(): string; +// export function doTheOtherThing(): void; +// <|export as namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}myLib|];|> // === /tests/cases/fourslash/1.ts === // /// // [|myLib|].doThing(); + // === Definitions === + // === /tests/cases/fourslash/0.d.ts === + // export function doThing(): string; + // export function doTheOtherThing(): void; + // <|export as namespace /*FIND ALL REFS*/[|myLib|];|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export namespace myLib", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "myLib", + "kind": "aliasName" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/0.d.ts === // export function doThing(): string; // export function doTheOtherThing(): void; -// export as namespace /*FIND ALL REFS*/[|myLib|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/0.d.ts", - "kind": "alias", - "name": "export namespace myLib", - "textSpan": { - "start": 96, - "length": 5 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "myLib", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 76, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/0.d.ts", - "contextSpan": { - "start": 76, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 32, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/1.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] +// <|export as namespace [|{| isWriteAccess: true |}myLib|];|> // === /tests/cases/fourslash/1.ts === // /// // /*FIND ALL REFS*/[|myLib|].doThing(); -// === /tests/cases/fourslash/0.d.ts === -// export function doThing(): string; -// export function doTheOtherThing(): void; -// export as namespace [|myLib|]; + // === Definitions === + // === /tests/cases/fourslash/0.d.ts === + // export function doThing(): string; + // export function doTheOtherThing(): void; + // <|export as namespace [|myLib|];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/0.d.ts", - "kind": "alias", - "name": "export namespace myLib", - "textSpan": { - "start": 96, - "length": 5 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "myLib", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 76, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/0.d.ts", - "contextSpan": { - "start": 76, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 32, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/1.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export namespace myLib", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "myLib", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForVariableInExtendsClause01.baseline.jsonc b/tests/baselines/reference/findAllRefsForVariableInExtendsClause01.baseline.jsonc index e30ba3594593e..5c7e84f2db57f 100644 --- a/tests/baselines/reference/findAllRefsForVariableInExtendsClause01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForVariableInExtendsClause01.baseline.jsonc @@ -1,243 +1,165 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === -// /*FIND ALL REFS*/var [|Base|] = class { }; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}Base|] = class { };|> // class C extends [|Base|] { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "kind": "var", - "name": "var Base: typeof Base", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === + // /*FIND ALL REFS*/<|var [|Base|] = class { };|> + // class C extends Base { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var Base: typeof Base", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === -// var /*FIND ALL REFS*/[|Base|] = class { }; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Base|] = class { };|> // class C extends [|Base|] { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "kind": "var", - "name": "var Base: typeof Base", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === + // <|var /*FIND ALL REFS*/[|Base|] = class { };|> + // class C extends Base { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var Base: typeof Base", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === -// var [|Base|] = class { }; +// <|var [|{| isWriteAccess: true |}Base|] = class { };|> // class C extends /*FIND ALL REFS*/[|Base|] { } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "kind": "var", - "name": "var Base: typeof Base", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 38, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause01.ts === + // <|var [|Base|] = class { };|> + // class C extends /*FIND ALL REFS*/Base { } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var Base: typeof Base", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForVariableInExtendsClause02.baseline.jsonc b/tests/baselines/reference/findAllRefsForVariableInExtendsClause02.baseline.jsonc index 8efa60464faa3..01102731805ed 100644 --- a/tests/baselines/reference/findAllRefsForVariableInExtendsClause02.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForVariableInExtendsClause02.baseline.jsonc @@ -1,192 +1,123 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === -// /*FIND ALL REFS*/interface [|Base|] { } +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}Base|] { }|> // namespace n { // var Base = class { }; // interface I extends [|Base|] { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "kind": "interface", - "name": "interface Base", - "textSpan": { - "start": 10, - "length": 4 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === + // /*FIND ALL REFS*/<|interface [|Base|] { }|> + // namespace n { + // var Base = class { }; + // interface I extends Base { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Base", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === -// interface /*FIND ALL REFS*/[|Base|] { } +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Base|] { }|> // namespace n { // var Base = class { }; // interface I extends [|Base|] { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "kind": "interface", - "name": "interface Base", - "textSpan": { - "start": 10, - "length": 4 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === + // <|interface /*FIND ALL REFS*/[|Base|] { }|> + // namespace n { + // var Base = class { }; + // interface I extends Base { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Base", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === -// interface [|Base|] { } +// <|interface [|{| isWriteAccess: true |}Base|] { }|> // namespace n { // var Base = class { }; // interface I extends /*FIND ALL REFS*/[|Base|] { } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "kind": "interface", - "name": "interface Base", - "textSpan": { - "start": 10, - "length": 4 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 83, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsForVariableInExtendsClause02.ts === + // <|interface [|Base|] { }|> + // namespace n { + // var Base = class { }; + // interface I extends /*FIND ALL REFS*/Base { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Base", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsForVariableInImplementsClause01.baseline.jsonc b/tests/baselines/reference/findAllRefsForVariableInImplementsClause01.baseline.jsonc index 66dc9051da651..f6a27df4e3aea 100644 --- a/tests/baselines/reference/findAllRefsForVariableInImplementsClause01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsForVariableInImplementsClause01.baseline.jsonc @@ -1 +1,4 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsForVariableInImplementsClause01.ts === +// var Base = class { }; +// class C extends Base implements /*FIND ALL REFS*/Base { } \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsGlobalModuleAugmentation.baseline.jsonc b/tests/baselines/reference/findAllRefsGlobalModuleAugmentation.baseline.jsonc index 74ba890b807d0..b6a8e93fb1ae3 100644 --- a/tests/baselines/reference/findAllRefsGlobalModuleAugmentation.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsGlobalModuleAugmentation.baseline.jsonc @@ -1,258 +1,186 @@ -// === /b.ts === -// [|f|](); - +// === findAllReferences === // === /a.ts === // export {}; // declare global { -// /*FIND ALL REFS*/function [|f|](): void; +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}f|](): void;|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 41, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 32, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 0, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /b.ts === // [|f|](); + // === Definitions === + // === /a.ts === + // export {}; + // declare global { + // /*FIND ALL REFS*/<|function [|f|](): void;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /a.ts === // export {}; // declare global { -// function /*FIND ALL REFS*/[|f|](): void; +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|](): void;|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 41, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 32, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 0, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// === /b.ts === +// [|f|](); + + // === Definitions === + // === /a.ts === + // export {}; + // declare global { + // <|function /*FIND ALL REFS*/[|f|](): void;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] -// === /b.ts === -// /*FIND ALL REFS*/[|f|](); + +// === findAllReferences === // === /a.ts === // export {}; // declare global { -// function [|f|](): void; +// <|function [|{| isWriteAccess: true |}f|](): void;|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 41, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 32, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 0, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } +// === /b.ts === +// /*FIND ALL REFS*/[|f|](); + + // === Definitions === + // === /a.ts === + // export {}; + // declare global { + // <|function [|f|](): void;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsGlobalThisKeywordInModule.baseline.jsonc b/tests/baselines/reference/findAllRefsGlobalThisKeywordInModule.baseline.jsonc index 66dc9051da651..2214fb1e40320 100644 --- a/tests/baselines/reference/findAllRefsGlobalThisKeywordInModule.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsGlobalThisKeywordInModule.baseline.jsonc @@ -1 +1,4 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsGlobalThisKeywordInModule.ts === +// /*FIND ALL REFS*/this; +// export const c = 1; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportDefault.baseline.jsonc b/tests/baselines/reference/findAllRefsImportDefault.baseline.jsonc index 02647e0d517a2..00f61fe314ca4 100644 --- a/tests/baselines/reference/findAllRefsImportDefault.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportDefault.baseline.jsonc @@ -1,416 +1,332 @@ -// === /tests/cases/fourslash/b.ts === -// import [|bar|] from "./f"; -// [|bar|](1, 2); - +// === findAllReferences === // === /tests/cases/fourslash/f.ts === -// export { [|foo|] as [|default|] }; -// function /*FIND ALL REFS*/[|foo|](a: number, b: number) { +// <|<|export { [|{| contextId: 0, defId: 0 |}foo|] as [|{| contextId: 1, defId: 1, isWriteAccess: true |}default|] };|>|> +// <|function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](a: number, b: number) { // return a + b; -// } +// }|> + +// === /tests/cases/fourslash/b.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}bar|] from "./f";|> +// [|{| defId: 2 |}bar|](1, 2); + + // === Definitions === + // === /tests/cases/fourslash/f.ts === + // <|export { foo as [|{| defId: 1 |}default|] };|> + // <|function /*FIND ALL REFS*/[|{| defId: 0 |}foo|](a: number, b: number) { + // return a + b; + // }|> + + // === /tests/cases/fourslash/b.ts === + // <|import [|{| defId: 2 |}bar|] from "./f";|> + // bar(1, 2); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "function", - "name": "function foo(a: number, b: number): number", - "textSpan": { - "start": 36, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 36, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 27, - "length": 56 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(a: number, b: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "alias", - "name": "(alias) function foo(a: number, b: number): number\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(a: number, b: number): number\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function bar(a: number, b: number): number\nimport bar", - "textSpan": { - "start": 7, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 23, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(a: number, b: number): number\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefsImportEquals.baseline.jsonc index efbe34438596d..c9d72831c558c 100644 --- a/tests/baselines/reference/findAllRefsImportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportEquals.baseline.jsonc @@ -1,79 +1,53 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsImportEquals.ts === // import j = N./*FIND ALL REFS*/[|q|]; -// namespace N { export const [|q|] = 0; } +// namespace N { <|export const [|{| isWriteAccess: true |}q|] = 0;|> } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsImportEquals.ts", - "kind": "const", - "name": "const N.q: 0", - "textSpan": { - "start": 43, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "q", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 30, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsImportEquals.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsImportEquals.ts", - "contextSpan": { - "start": 30, - "length": 19 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsImportEquals.ts === + // import j = N./*FIND ALL REFS*/q; + // namespace N { <|export const [|q|] = 0;|> } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const N.q: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "q", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportEqualsJsonFile.baseline.jsonc b/tests/baselines/reference/findAllRefsImportEqualsJsonFile.baseline.jsonc index 39b758b548da1..7f1d934ba209e 100644 --- a/tests/baselines/reference/findAllRefsImportEqualsJsonFile.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportEqualsJsonFile.baseline.jsonc @@ -1,451 +1,287 @@ +// === findAllReferences === // === /a.ts === -// import /*FIND ALL REFS*/[|j|] = require("./j.json"); +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}j|] = require("./j.json");|> // [|j|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "import j = require(\"./j.json\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./j.json\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|import /*FIND ALL REFS*/[|j|] = require("./j.json");|> + // j; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import j = require(\"./j.json\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./j.json\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// import [|j|] = require("./j.json"); +// <|import [|{| isWriteAccess: true |}j|] = require("./j.json");|> // /*FIND ALL REFS*/[|j|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "import j = require(\"./j.json\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./j.json\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|import [|j|] = require("./j.json");|> + // /*FIND ALL REFS*/j; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import j = require(\"./j.json\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./j.json\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] -// === /j.json === -// [|{ "x": 0 }|] -// === /b.js === -// const j = require("[|./j.json|]"); -// j; +// === findAllReferences === // === /a.ts === -// import j = require("/*FIND ALL REFS*/[|./j.json|]"); +// <|import j = require("/*FIND ALL REFS*/[|./j.json|]");|> // j; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/j.json", - "kind": "module", - "name": "module \"/j\"", - "textSpan": { - "start": 0, - "length": 10 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/j\"", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 8 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 8 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 10 - }, - "fileName": "/j.json", - "isWriteAccess": false - } - ] - } -] +// === /b.js === +// <|const j = require("[|./j.json|]");|> +// j; // === /j.json === // [|{ "x": 0 }|] -// === /b.js === -// const j = require("/*FIND ALL REFS*/[|./j.json|]"); -// j; + // === Definitions === + // === /j.json === + // [|{ "x": 0 }|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/j\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/j\"", + "kind": "moduleName" + } + ] + } + ] + + +// === findAllReferences === // === /a.ts === -// import j = require("[|./j.json|]"); +// <|import j = require("[|./j.json|]");|> // j; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/j.json", - "kind": "module", - "name": "module \"/j\"", - "textSpan": { - "start": 0, - "length": 10 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/j\"", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 8 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 8 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 10 - }, - "fileName": "/j.json", - "isWriteAccess": false - } +// === /b.js === +// <|const j = require("/*FIND ALL REFS*/[|./j.json|]");|> +// j; + +// === /j.json === +// [|{ "x": 0 }|] + + // === Definitions === + // === /j.json === + // [|{ "x": 0 }|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/j\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/j\"", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.js === -// const /*FIND ALL REFS*/[|j|] = require("./j.json"); +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}j|] = require("./j.json");|> // [|j|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "import j", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b.js === + // <|const /*FIND ALL REFS*/[|j|] = require("./j.json");|> + // j; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import j", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.js === -// const [|j|] = require("./j.json"); +// <|const [|{| isWriteAccess: true |}j|] = require("./j.json");|> // /*FIND ALL REFS*/[|j|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "alias", - "name": "import j", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /b.js === + // <|const [|j|] = require("./j.json");|> + // /*FIND ALL REFS*/j; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import j", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j", + "kind": "aliasName" + } ] - } -] + } + ] + -undefined \ No newline at end of file + +// === findAllReferences === +// === /j.json === +// /*FIND ALL REFS*/{ "x": 0 } \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc b/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc index 11d6c0edd0b7e..0d9437741b411 100644 --- a/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.ts === // /// // /// @@ -11,48 +12,23 @@ // . // hai :) // [|meta|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.ts", - "kind": "keyword", - "textSpan": { - "start": 82, - "length": 4 - }, - "displayParts": [ - { - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 82, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 95, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/foo.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 109, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/baz.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.ts === + // /// + // /// + // import./*FIND ALL REFS*/[|meta|]; + // import.meta; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "displayParts": [ + { + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportNamed.baseline.jsonc b/tests/baselines/reference/findAllRefsImportNamed.baseline.jsonc index 25a6b6f96f469..1f31c0ddc606a 100644 --- a/tests/baselines/reference/findAllRefsImportNamed.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportNamed.baseline.jsonc @@ -1,276 +1,211 @@ +// === findAllReferences === // === /tests/cases/fourslash/f.ts === -// export { [|foo|] as [|foo|] } -// function /*FIND ALL REFS*/[|foo|](a: number, b: number) { } +// <|<|export { [|{| contextId: 0, defId: 0 |}foo|] as [|{| contextId: 1, defId: 1, isWriteAccess: true |}foo|] }|>|> +// <|function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](a: number, b: number) { }|> // === /tests/cases/fourslash/b.ts === // import x = require("./f"); -// x.[|foo|](1, 2); +// x.[|{| defId: 1 |}foo|](1, 2); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "function", - "name": "function foo(a: number, b: number): void", - "textSpan": { - "start": 31, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 22, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 22, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/f.ts === + // <|export { foo as [|{| defId: 1 |}foo|] }|> + // <|function /*FIND ALL REFS*/[|{| defId: 0 |}foo|](a: number, b: number) { }|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(a: number, b: number): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "alias", - "name": "(alias) function foo(a: number, b: number): void\nexport foo", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 29, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(a: number, b: number): void\nexport foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportStarOfExportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefsImportStarOfExportEquals.baseline.jsonc index f99ca0753a2e7..f815257edae6b 100644 --- a/tests/baselines/reference/findAllRefsImportStarOfExportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportStarOfExportEquals.baseline.jsonc @@ -1,2825 +1,2188 @@ +// === findAllReferences === +// === /node_modules/a/index.d.ts === +// <|declare function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|](): void;|> +// <|declare namespace [|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] { +// export const x: number; +// }|> +// <|export = [|{| defId: 0 |}a|];|> + // === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; +// <|import [|{| defId: 1, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 1 |}b|](); +// [|{| defId: 1 |}b|].x; // === /c.ts === -// import [|a|] from "a"; -// [|a|](); -// [|a|].x; +// <|import [|{| defId: 2, isWriteAccess: true |}a|] from "a";|> +// [|{| defId: 2 |}a|](); +// [|{| defId: 2 |}a|].x; -// === /node_modules/a/index.d.ts === -// declare function /*FIND ALL REFS*/[|a|](): void; -// declare namespace [|a|] { -// export const x: number; -// } -// export = [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|declare function /*FIND ALL REFS*/[|{| defId: 0 |}a|](): void;|> + // declare namespace a { + // export const x: number; + // } + // export = a; + + // === /b.ts === + // <|import [|{| defId: 1 |}b|] from "a";|> + // b(); + // b.x; + + // === /c.ts === + // <|import [|{| defId: 2 |}a|] from "a";|> + // a(); + // a.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] -// === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; -// === /c.ts === -// import [|a|] from "a"; -// [|a|](); -// [|a|].x; +// === findAllReferences === // === /node_modules/a/index.d.ts === -// declare function [|a|](): void; -// declare namespace /*FIND ALL REFS*/[|a|] { +// <|declare function [|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|](): void;|> +// <|declare namespace /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] { // export const x: number; -// } -// export = [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } +// }|> +// <|export = [|{| defId: 0 |}a|];|> + +// === /b.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 1 |}b|](); +// [|{| defId: 1 |}b|].x; + +// === /c.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}a|] from "a";|> +// [|{| defId: 2 |}a|](); +// [|{| defId: 2 |}a|].x; + + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|declare function [|{| defId: 0 |}a|](): void;|> + // declare namespace /*FIND ALL REFS*/a { + // export const x: number; + // } + // export = a; + + // === /b.ts === + // <|import [|{| defId: 1 |}b|] from "a";|> + // b(); + // b.x; + + // === /c.ts === + // <|import [|{| defId: 2 |}a|] from "a";|> + // a(); + // a.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] -// === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; -// === /c.ts === -// import [|a|] from "a"; -// [|a|](); -// [|a|].x; +// === findAllReferences === // === /node_modules/a/index.d.ts === -// declare function [|a|](): void; -// declare namespace [|a|] { +// <|declare function [|{| defId: 0, isWriteAccess: true |}a|](): void;|> +// <|declare namespace [|{| defId: 0, isWriteAccess: true |}a|] { // export const x: number; -// } -// export = /*FIND ALL REFS*/[|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false - } +// }|> +// <|export = /*FIND ALL REFS*/[|{| defId: 0 |}a|];|> + +// === /b.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 1 |}b|](); +// [|{| defId: 1 |}b|].x; + +// === /c.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}a|] from "a";|> +// [|{| defId: 2 |}a|](); +// [|{| defId: 2 |}a|].x; + + // === Definitions === + // === /node_modules/a/index.d.ts === + // <|declare function [|{| defId: 0 |}a|](): void;|> + // declare namespace a { + // export const x: number; + // } + // export = /*FIND ALL REFS*/a; + + // === /b.ts === + // <|import [|{| defId: 1 |}b|] from "a";|> + // b(); + // b.x; + + // === /c.ts === + // <|import [|{| defId: 2 |}a|] from "a";|> + // a(); + // a.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import /*FIND ALL REFS*/[|b|] from "a"; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}b|] from "a";|> // [|b|](); // [|b|].x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b.ts === + // <|import /*FIND ALL REFS*/[|b|] from "a";|> + // b(); + // b.x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import [|b|] from "a"; +// <|import [|{| isWriteAccess: true |}b|] from "a";|> // /*FIND ALL REFS*/[|b|](); // [|b|].x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /b.ts === + // <|import [|b|] from "a";|> + // /*FIND ALL REFS*/b(); + // b.x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] -// === /c.ts === -// import /*FIND ALL REFS*/[|a|] from "a"; -// [|a|](); -// [|a|].x; -// === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; + +// === findAllReferences === +// === /c.ts === +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] from "a";|> +// [|{| defId: 0 |}a|](); +// [|{| defId: 0 |}a|].x; // === /node_modules/a/index.d.ts === -// declare function [|a|](): void; -// declare namespace [|a|] { +// <|declare function [|{| defId: 1, isWriteAccess: true |}a|](): void;|> +// <|declare namespace [|{| defId: 1, isWriteAccess: true |}a|] { // export const x: number; -// } -// export = [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } +// }|> +// <|export = [|{| defId: 1 |}a|];|> + +// === /b.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 2 |}b|](); +// [|{| defId: 2 |}b|].x; + + // === Definitions === + // === /c.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}a|] from "a";|> + // a(); + // a.x; + + // === /node_modules/a/index.d.ts === + // <|declare function [|{| defId: 1 |}a|](): void;|> + // declare namespace a { + // export const x: number; + // } + // export = a; + + // === /b.ts === + // <|import [|{| defId: 2 |}b|] from "a";|> + // b(); + // b.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] -// === /c.ts === -// import [|a|] from "a"; -// /*FIND ALL REFS*/[|a|](); -// [|a|].x; -// === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; + +// === findAllReferences === +// === /c.ts === +// <|import [|{| defId: 0, isWriteAccess: true |}a|] from "a";|> +// /*FIND ALL REFS*/[|{| defId: 0 |}a|](); +// [|{| defId: 0 |}a|].x; // === /node_modules/a/index.d.ts === -// declare function [|a|](): void; -// declare namespace [|a|] { +// <|declare function [|{| defId: 1, isWriteAccess: true |}a|](): void;|> +// <|declare namespace [|{| defId: 1, isWriteAccess: true |}a|] { // export const x: number; -// } -// export = [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } +// }|> +// <|export = [|{| defId: 1 |}a|];|> + +// === /b.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 2 |}b|](); +// [|{| defId: 2 |}b|].x; + + // === Definitions === + // === /c.ts === + // <|import [|{| defId: 0 |}a|] from "a";|> + // /*FIND ALL REFS*/a(); + // a.x; + + // === /node_modules/a/index.d.ts === + // <|declare function [|{| defId: 1 |}a|](): void;|> + // declare namespace a { + // export const x: number; + // } + // export = a; + + // === /b.ts === + // <|import [|{| defId: 2 |}b|] from "a";|> + // b(); + // b.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] -// === /c.ts === -// import [|a|] from "a"; -// [|a|](); -// /*FIND ALL REFS*/[|a|].x; -// === /b.ts === -// import [|b|] from "a"; -// [|b|](); -// [|b|].x; + +// === findAllReferences === +// === /c.ts === +// <|import [|{| defId: 0, isWriteAccess: true |}a|] from "a";|> +// [|{| defId: 0 |}a|](); +// /*FIND ALL REFS*/[|{| defId: 0 |}a|].x; // === /node_modules/a/index.d.ts === -// declare function [|a|](): void; -// declare namespace [|a|] { +// <|declare function [|{| defId: 1, isWriteAccess: true |}a|](): void;|> +// <|declare namespace [|{| defId: 1, isWriteAccess: true |}a|] { // export const x: number; -// } -// export = [|a|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function a(): void\n(alias) namespace a\nimport a", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } +// }|> +// <|export = [|{| defId: 1 |}a|];|> + +// === /b.ts === +// <|import [|{| defId: 2, isWriteAccess: true |}b|] from "a";|> +// [|{| defId: 2 |}b|](); +// [|{| defId: 2 |}b|].x; + + // === Definitions === + // === /c.ts === + // <|import [|{| defId: 0 |}a|] from "a";|> + // a(); + // /*FIND ALL REFS*/a.x; + + // === /node_modules/a/index.d.ts === + // <|declare function [|{| defId: 1 |}a|](): void;|> + // declare namespace a { + // export const x: number; + // } + // export = a; + + // === /b.ts === + // <|import [|{| defId: 2 |}b|] from "a";|> + // b(); + // b.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function a(): void\n(alias) namespace a\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/a/index.d.ts", - "kind": "function", - "name": "namespace a\nfunction a(): void", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 28, - "length": 51 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 89, - "length": 1 - }, - "fileName": "/node_modules/a/index.d.ts", - "contextSpan": { - "start": 80, - "length": 11 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace a\nfunction a(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function b(): void\n(alias) namespace b\nimport b", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function b(): void\n(alias) namespace b\nimport b", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /node_modules/a/index.d.ts === +// <|declare function /*RENAME*/[|aRENAME|](): void;|> +// <|declare namespace [|aRENAME|] { +// export const x: number; +// }|> +// <|export = [|aRENAME|];|> + +// === /c.ts === +// <|import [|aRENAME|] from "a";|> +// [|aRENAME|](); +// [|aRENAME|].x; + + + +// === findRenameLocations === +// === /node_modules/a/index.d.ts === +// <|declare function [|aRENAME|](): void;|> +// <|declare namespace /*RENAME*/[|aRENAME|] { +// export const x: number; +// }|> +// <|export = [|aRENAME|];|> + +// === /c.ts === +// <|import [|aRENAME|] from "a";|> +// [|aRENAME|](); +// [|aRENAME|].x; + + + +// === findRenameLocations === +// === /node_modules/a/index.d.ts === +// <|declare function [|aRENAME|](): void;|> +// <|declare namespace [|aRENAME|] { +// export const x: number; +// }|> +// <|export = /*RENAME*/[|aRENAME|];|> + +// === /c.ts === +// <|import [|aRENAME|] from "a";|> +// [|aRENAME|](); +// [|aRENAME|].x; + + + +// === findRenameLocations === +// === /b.ts === +// <|import /*RENAME*/[|bRENAME|] from "a";|> +// [|bRENAME|](); +// [|bRENAME|].x; + + + +// === findRenameLocations === +// === /b.ts === +// <|import [|bRENAME|] from "a";|> +// /*RENAME*/[|bRENAME|](); +// [|bRENAME|].x; + + + +// === findRenameLocations === +// === /b.ts === +// <|import [|bRENAME|] from "a";|> +// [|bRENAME|](); +// /*RENAME*/[|bRENAME|].x; + + + +// === findRenameLocations === +// === /c.ts === +// <|import /*RENAME*/[|aRENAME|] from "a";|> +// [|aRENAME|](); +// [|aRENAME|].x; + + + +// === findRenameLocations === +// === /c.ts === +// <|import [|aRENAME|] from "a";|> +// /*RENAME*/[|aRENAME|](); +// [|aRENAME|].x; + + + +// === findRenameLocations === +// === /c.ts === +// <|import [|aRENAME|] from "a";|> +// [|aRENAME|](); +// /*RENAME*/[|aRENAME|].x; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsImportType.baseline.jsonc b/tests/baselines/reference/findAllRefsImportType.baseline.jsonc index 53ba984428cd8..786c2d73bf12f 100644 --- a/tests/baselines/reference/findAllRefsImportType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsImportType.baseline.jsonc @@ -1,240 +1,162 @@ +// === findAllReferences === +// === /a.js === +// module.exports = 0; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}N|] = number;|> + // === /b.js === // type T = import("./a").[|N|]; -// === /a.js === -// module.exports = 0; -// /*FIND ALL REFS*/export type [|N|] = number; + // === Definitions === + // === /a.js === + // module.exports = 0; + // /*FIND ALL REFS*/<|export type [|N|] = number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type N = number", - "textSpan": { - "start": 32, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 20, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type N = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + -// === /b.js === -// type T = import("./a").[|N|]; +// === findAllReferences === // === /a.js === // module.exports = 0; -// export type /*FIND ALL REFS*/[|N|] = number; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}N|] = number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type N = number", - "textSpan": { - "start": 32, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 20, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } +// === /b.js === +// type T = import("./a").[|N|]; + + // === Definitions === + // === /a.js === + // module.exports = 0; + // <|export type /*FIND ALL REFS*/[|N|] = number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type N = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + -// === /b.js === -// type T = import("./a")./*FIND ALL REFS*/[|N|]; +// === findAllReferences === // === /a.js === // module.exports = 0; -// export type [|N|] = number; +// <|export type [|{| isWriteAccess: true |}N|] = number;|> + +// === /b.js === +// type T = import("./a")./*FIND ALL REFS*/[|N|]; + + // === Definitions === + // === /a.js === + // module.exports = 0; + // <|export type [|N|] = number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type N = number", - "textSpan": { - "start": 32, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 20, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type N = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInClassExpression.baseline.jsonc b/tests/baselines/reference/findAllRefsInClassExpression.baseline.jsonc index c50d563aa24a5..a7017c3c76fb1 100644 --- a/tests/baselines/reference/findAllRefsInClassExpression.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInClassExpression.baseline.jsonc @@ -1,345 +1,265 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInClassExpression.ts === -// interface I { /*FIND ALL REFS*/[|boom|](): void; } +// interface I { /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}boom|](): void;|> } // new class C implements I { -// [|boom|](){} +// <|[|{| defId: 1, isWriteAccess: true |}boom|](){}|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "kind": "method", - "name": "(method) I.boom(): void", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "boom", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "contextSpan": { - "start": 14, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInClassExpression.ts === + // interface I { /*FIND ALL REFS*/<|[|{| defId: 0 |}boom|](): void;|> } + // new class C implements I { + // <|[|{| defId: 1 |}boom|](){}|> + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.boom(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "boom", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "kind": "method", - "name": "(method) C.boom(): void", - "textSpan": { - "start": 60, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "boom", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 60, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "contextSpan": { - "start": 60, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.boom(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "boom", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInClassExpression.ts === -// interface I { [|boom|](): void; } +// interface I { <|[|{| defId: 0 |}boom|](): void;|> } // new class C implements I { -// /*FIND ALL REFS*/[|boom|](){} +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}boom|](){}|> // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "kind": "method", - "name": "(method) I.boom(): void", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "boom", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "contextSpan": { - "start": 14, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInClassExpression.ts === + // interface I { <|[|{| defId: 0 |}boom|](): void;|> } + // new class C implements I { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}boom|](){}|> + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.boom(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "boom", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "kind": "method", - "name": "(method) C.boom(): void", - "textSpan": { - "start": 60, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "boom", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 60, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInClassExpression.ts", - "contextSpan": { - "start": 60, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.boom(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "boom", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsIndexedAccessTypes.baseline.jsonc b/tests/baselines/reference/findAllRefsIndexedAccessTypes.baseline.jsonc index 22889d0390d81..5ffc5300aaca4 100644 --- a/tests/baselines/reference/findAllRefsIndexedAccessTypes.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsIndexedAccessTypes.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === // interface I { -// /*FIND ALL REFS*/[|0|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}0|]: number;|> // s: string; // } // interface J { @@ -8,195 +9,155 @@ // b: I["s"], // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "kind": "property", - "name": "(property) I[0]: number", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "contextSpan": { - "start": 18, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 69, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === + // interface I { + // /*FIND ALL REFS*/<|[|0|]: number;|> + // s: string; + // } + // interface J { + // a: I[0], + // b: I["s"], + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I[0]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === // interface I { // 0: number; -// /*FIND ALL REFS*/[|s|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}s|]: string;|> // } // interface J { // a: I[0], // b: I["[|s|]"], // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "kind": "property", - "name": "(property) I.s: string", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "contextSpan": { - "start": 33, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === + // interface I { + // 0: number; + // /*FIND ALL REFS*/<|[|s|]: string;|> + // } + // interface J { + // a: I[0], + // b: I["s"], + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.s: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === // interface I { -// [|0|]: number; +// <|[|0|]: number;|> // s: string; // } // interface J { @@ -204,184 +165,145 @@ // b: I["s"], // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "kind": "property", - "name": "(property) I[0]: number", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "contextSpan": { - "start": 18, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 69, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === + // interface I { + // <|[|0|]: number;|> + // s: string; + // } + // interface J { + // a: I[/*FIND ALL REFS*/0], + // b: I["s"], + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I[0]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === // interface I { // 0: number; -// [|s|]: string; +// <|[|s|]: string;|> // } // interface J { // a: I[0], // b: I["/*FIND ALL REFS*/[|s|]"], // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "kind": "property", - "name": "(property) I.s: string", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "contextSpan": { - "start": 33, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIndexedAccessTypes.ts === + // interface I { + // 0: number; + // <|[|s|]: string;|> + // } + // interface J { + // a: I[0], + // b: I["/*FIND ALL REFS*/s"], + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.s: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInheritedProperties1.baseline.jsonc b/tests/baselines/reference/findAllRefsInheritedProperties1.baseline.jsonc index a98348c0d16dd..faf714d5aa07f 100644 --- a/tests/baselines/reference/findAllRefsInheritedProperties1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInheritedProperties1.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === // class class1 extends class1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // @@ -8,199 +9,159 @@ // v.[|doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 88, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === + // class class1 extends class1 { + // /*FIND ALL REFS*/<|[|doStuff|]() { }|> + // propName: string; + // } + // + // var v: class1; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === // class class1 extends class1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propName|]: string;|> // } // // var v: class1; // v.doStuff(); // v.[|propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === + // class class1 extends class1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|propName|]: string;|> + // } + // + // var v: class1; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === // class class1 extends class1 { -// [|doStuff|]() { } +// <|[|{| isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // @@ -208,188 +169,149 @@ // v./*FIND ALL REFS*/[|doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 88, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === + // class class1 extends class1 { + // <|[|doStuff|]() { }|> + // propName: string; + // } + // + // var v: class1; + // v./*FIND ALL REFS*/doStuff(); + // v.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === // class class1 extends class1 { // doStuff() { } -// [|propName|]: string; +// <|[|propName|]: string;|> // } // // var v: class1; // v.doStuff(); // v./*FIND ALL REFS*/[|propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties1.ts === + // class class1 extends class1 { + // doStuff() { } + // <|[|propName|]: string;|> + // } + // + // var v: class1; + // v.doStuff(); + // v./*FIND ALL REFS*/propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInheritedProperties2.baseline.jsonc b/tests/baselines/reference/findAllRefsInheritedProperties2.baseline.jsonc index 08621b903e2a3..99b598b46e776 100644 --- a/tests/baselines/reference/findAllRefsInheritedProperties2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInheritedProperties2.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === // interface interface1 extends interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; // r0 +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}doStuff|](): void;|> // r0 // propName: string; // r1 // } // @@ -8,199 +9,159 @@ // v.[|doStuff|](); // r2 // v.propName; // r3 -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 45, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 45, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "contextSpan": { - "start": 45, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === + // interface interface1 extends interface1 { + // /*FIND ALL REFS*/<|[|doStuff|](): void;|> // r0 + // propName: string; // r1 + // } + // + // var v: interface1; + // v.doStuff(); // r2 + // v.propName; // r3 + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === // interface interface1 extends interface1 { // doStuff(): void; // r0 -// /*FIND ALL REFS*/[|propName|]: string; // r1 +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propName|]: string;|> // r1 // } // // var v: interface1; // v.doStuff(); // r2 // v.[|propName|]; // r3 -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 73, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 73, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "contextSpan": { - "start": 73, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 142, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === + // interface interface1 extends interface1 { + // doStuff(): void; // r0 + // /*FIND ALL REFS*/<|[|propName|]: string;|> // r1 + // } + // + // var v: interface1; + // v.doStuff(); // r2 + // v.propName; // r3 + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === // interface interface1 extends interface1 { -// [|doStuff|](): void; // r0 +// <|[|doStuff|](): void;|> // r0 // propName: string; // r1 // } // @@ -208,188 +169,149 @@ // v./*FIND ALL REFS*/[|doStuff|](); // r2 // v.propName; // r3 -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 45, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 45, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "contextSpan": { - "start": 45, - "length": 16 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 122, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === + // interface interface1 extends interface1 { + // <|[|doStuff|](): void;|> // r0 + // propName: string; // r1 + // } + // + // var v: interface1; + // v./*FIND ALL REFS*/doStuff(); // r2 + // v.propName; // r3 + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === // interface interface1 extends interface1 { // doStuff(): void; // r0 -// [|propName|]: string; // r1 +// <|[|propName|]: string;|> // r1 // } // // var v: interface1; // v.doStuff(); // r2 // v./*FIND ALL REFS*/[|propName|]; // r3 -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 73, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 73, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "contextSpan": { - "start": 73, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties2.ts === + // interface interface1 extends interface1 { + // doStuff(): void; // r0 + // <|[|propName|]: string;|> // r1 + // } + // + // var v: interface1; + // v.doStuff(); // r2 + // v./*FIND ALL REFS*/propName; // r3 + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInheritedProperties3.baseline.jsonc b/tests/baselines/reference/findAllRefsInheritedProperties3.baseline.jsonc index 349d05c1bc3b0..34f98d19cfc64 100644 --- a/tests/baselines/reference/findAllRefsInheritedProperties3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInheritedProperties3.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // interface interface1 extends interface1 { @@ -8,194 +9,158 @@ // propName: string; // } // class class2 extends class1 implements interface1 { -// [|doStuff|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 1 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 34, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 34, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 34, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|]() { }|> + // propName: string; + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // <|[|{| defId: 1 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 215, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 215, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 215, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 215, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 271, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propName|]: string;|> // } // interface interface1 extends interface1 { // doStuff(): void; @@ -203,367 +168,295 @@ // } // class class2 extends class1 implements interface1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 1 |}propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 52, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 52, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 233, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 233, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 233, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 233, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 284, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { // doStuff() { } // propName: string; // } // interface interface1 extends interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}doStuff|](): void;|> // propName: string; // } // class class2 extends class1 implements interface1 { -// [|doStuff|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 1 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 118, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 118, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 118, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // doStuff() { } + // propName: string; + // } + // interface interface1 extends interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|](): void;|> + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // <|[|{| defId: 1 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 215, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 215, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 215, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 215, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 271, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { // doStuff() { } @@ -571,1221 +464,946 @@ // } // interface interface1 extends interface1 { // doStuff(): void; -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propName|]: string;|> // } // class class2 extends class1 implements interface1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 1 |}propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 139, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 139, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 139, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 139, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // doStuff() { } + // propName: string; + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propName|]: string;|> + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 233, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 233, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 233, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 233, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 284, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { -// [|doStuff|]() { } +// <|[|{| defId: 0, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // interface interface1 extends interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // propName: string; // } // class class2 extends class1 implements interface1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 34, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 34, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 34, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // <|[|{| defId: 0 |}doStuff|]() { }|> + // propName: string; + // } + // interface interface1 extends interface1 { + // <|[|{| defId: 1 |}doStuff|](): void;|> + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 2 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 118, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 118, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 118, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 215, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 215, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 215, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 215, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 271, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { -// [|doStuff|]() { } +// <|[|{| defId: 0, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // interface interface1 extends interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // propName: string; // } // class class2 extends class1 implements interface1 { -// [|doStuff|]() { } +// <|[|{| defId: 2, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v./*FIND ALL REFS*/[|doStuff|](); +// v./*FIND ALL REFS*/[|{| defId: 2 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 34, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 34, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 34, - "length": 13 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // <|[|{| defId: 0 |}doStuff|]() { }|> + // propName: string; + // } + // interface interface1 extends interface1 { + // <|[|{| defId: 1 |}doStuff|](): void;|> + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // <|[|{| defId: 2 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v./*FIND ALL REFS*/doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 118, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 118, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 118, - "length": 16 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 215, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 215, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 215, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 215, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 271, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 0 |}propName|]: string;|> // } // interface interface1 extends interface1 { // doStuff(): void; -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // class class2 extends class1 implements interface1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 2, isDefinition: true |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 2 |}propName|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // doStuff() { } + // <|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|{| defId: 2 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 52, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 52, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 139, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 139, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 139, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 139, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 233, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 233, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 233, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 233, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 284, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === // class class1 extends class1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 0 |}propName|]: string;|> // } // interface interface1 extends interface1 { // doStuff(): void; -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // class class2 extends class1 implements interface1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 2 |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v./*FIND ALL REFS*/[|propName|]; +// v./*FIND ALL REFS*/[|{| defId: 2 |}propName|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties3.ts === + // class class1 extends class1 { + // doStuff() { } + // <|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // <|[|{| defId: 2 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v./*FIND ALL REFS*/propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 52, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 52, - "length": 17 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 139, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 139, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 139, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 139, - "length": 17 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 233, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 233, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 233, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "contextSpan": { - "start": 233, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 284, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties3.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInheritedProperties4.baseline.jsonc b/tests/baselines/reference/findAllRefsInheritedProperties4.baseline.jsonc index fe0f6c7423c35..e73ecc81db9e2 100644 --- a/tests/baselines/reference/findAllRefsInheritedProperties4.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInheritedProperties4.baseline.jsonc @@ -1,526 +1,410 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === // interface C extends D { -// /*FIND ALL REFS*/[|prop0|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}prop0|]: string;|> // prop1: number; // } // // interface D extends C { -// [|prop0|]: string; +// <|[|{| defId: 1 |}prop0|]: string;|> // } // // var d: D; -// d.[|prop0|]; +// d.[|{| defId: 1 |}prop0|]; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) C.prop0: string", - "textSpan": { - "start": 28, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === + // interface C extends D { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}prop0|]: string;|> + // prop1: number; + // } + // + // interface D extends C { + // <|[|{| defId: 1 |}prop0|]: string;|> + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) D.prop0: string", - "textSpan": { - "start": 93, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 93, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 123, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === // interface C extends D { -// [|prop0|]: string; +// <|[|{| defId: 0 |}prop0|]: string;|> // prop1: number; // } // // interface D extends C { -// /*FIND ALL REFS*/[|prop0|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}prop0|]: string;|> // } // // var d: D; -// d.[|prop0|]; +// d.[|{| defId: 1 |}prop0|]; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) C.prop0: string", - "textSpan": { - "start": 28, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === + // interface C extends D { + // <|[|{| defId: 0 |}prop0|]: string;|> + // prop1: number; + // } + // + // interface D extends C { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}prop0|]: string;|> + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) D.prop0: string", - "textSpan": { - "start": 93, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 93, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 123, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === // interface C extends D { -// [|prop0|]: string; +// <|[|{| defId: 0 |}prop0|]: string;|> // prop1: number; // } // // interface D extends C { -// [|prop0|]: string; +// <|[|{| defId: 1 |}prop0|]: string;|> // } // // var d: D; -// d./*FIND ALL REFS*/[|prop0|]; +// d./*FIND ALL REFS*/[|{| defId: 1 |}prop0|]; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) C.prop0: string", - "textSpan": { - "start": 28, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === + // interface C extends D { + // <|[|{| defId: 0 |}prop0|]: string;|> + // prop1: number; + // } + // + // interface D extends C { + // <|[|{| defId: 1 |}prop0|]: string;|> + // } + // + // var d: D; + // d./*FIND ALL REFS*/prop0; + // d.prop1; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) D.prop0: string", - "textSpan": { - "start": 93, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 93, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 123, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === // interface C extends D { // prop0: string; -// /*FIND ALL REFS*/[|prop1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop1|]: number;|> // } // // interface D extends C { @@ -531,81 +415,86 @@ // d.prop0; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "kind": "property", - "name": "(property) C.prop1: number", - "textSpan": { - "start": 47, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 47, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 47, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties4.ts", - "contextSpan": { - "start": 47, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === + // interface C extends D { + // prop0: string; + // /*FIND ALL REFS*/<|[|prop1|]: number;|> + // } + // + // interface D extends C { + // prop0: string; + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsInheritedProperties4.ts === +// interface C extends D { +// prop0: string; +// prop1: number; +// } +// +// interface D extends C { +// prop0: string; +// } +// +// var d: D; +// d.prop0; +// d./*FIND ALL REFS*/prop1; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInheritedProperties5.baseline.jsonc b/tests/baselines/reference/findAllRefsInheritedProperties5.baseline.jsonc index 76508f501be95..76e16265c09ba 100644 --- a/tests/baselines/reference/findAllRefsInheritedProperties5.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInheritedProperties5.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === // class C extends D { -// /*FIND ALL REFS*/[|prop0|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop0|]: string;|> // prop1: number; // } // @@ -12,87 +13,80 @@ // d.prop0; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "kind": "property", - "name": "(property) C.prop0: string", - "textSpan": { - "start": 24, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "contextSpan": { - "start": 24, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === + // class C extends D { + // /*FIND ALL REFS*/<|[|prop0|]: string;|> + // prop1: number; + // } + // + // class D extends C { + // prop0: string; + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === // class C extends D { // prop0: string; -// /*FIND ALL REFS*/[|prop1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop1|]: number;|> // } // // class D extends C { @@ -103,83 +97,76 @@ // d.prop0; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "kind": "property", - "name": "(property) C.prop1: number", - "textSpan": { - "start": 43, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 43, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "contextSpan": { - "start": 43, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === + // class C extends D { + // prop0: string; + // /*FIND ALL REFS*/<|[|prop1|]: number;|> + // } + // + // class D extends C { + // prop0: string; + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === // class C extends D { // prop0: string; @@ -187,99 +174,83 @@ // } // // class D extends C { -// /*FIND ALL REFS*/[|prop0|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop0|]: string;|> // } // // var d: D; // d.[|prop0|]; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "kind": "property", - "name": "(property) D.prop0: string", - "textSpan": { - "start": 85, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "contextSpan": { - "start": 85, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 115, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === + // class C extends D { + // prop0: string; + // prop1: number; + // } + // + // class D extends C { + // /*FIND ALL REFS*/<|[|prop0|]: string;|> + // } + // + // var d: D; + // d.prop0; + // d.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === // class C extends D { // prop0: string; @@ -287,95 +258,93 @@ // } // // class D extends C { -// [|prop0|]: string; +// <|[|prop0|]: string;|> // } // // var d: D; // d./*FIND ALL REFS*/[|prop0|]; // d.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "kind": "property", - "name": "(property) D.prop0: string", - "textSpan": { - "start": 85, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop0", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "contextSpan": { - "start": 85, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 115, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInheritedProperties5.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === + // class C extends D { + // prop0: string; + // prop1: number; + // } + // + // class D extends C { + // <|[|prop0|]: string;|> + // } + // + // var d: D; + // d./*FIND ALL REFS*/prop0; + // d.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop0: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop0", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsInheritedProperties5.ts === +// class C extends D { +// prop0: string; +// prop1: number; +// } +// +// class D extends C { +// prop0: string; +// } +// +// var d: D; +// d.prop0; +// d./*FIND ALL REFS*/prop1; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInsideTemplates1.baseline.jsonc b/tests/baselines/reference/findAllRefsInsideTemplates1.baseline.jsonc index e6c5bc64fb9f2..2e33d30b1749c 100644 --- a/tests/baselines/reference/findAllRefsInsideTemplates1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInsideTemplates1.baseline.jsonc @@ -1,325 +1,189 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === -// /*FIND ALL REFS*/var [|x|] = 10; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}x|] = 10;|> // var y = `${ [|x|] } ${ [|x|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "contextSpan": { - "start": 0, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === + // /*FIND ALL REFS*/<|var [|x|] = 10;|> + // var y = `${ x } ${ x }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === -// var /*FIND ALL REFS*/[|x|] = 10; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 10;|> // var y = `${ [|x|] } ${ [|x|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "contextSpan": { - "start": 0, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === + // <|var /*FIND ALL REFS*/[|x|] = 10;|> + // var y = `${ x } ${ x }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === -// var [|x|] = 10; +// <|var [|{| isWriteAccess: true |}x|] = 10;|> // var y = `${ /*FIND ALL REFS*/[|x|] } ${ [|x|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "contextSpan": { - "start": 0, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === + // <|var [|x|] = 10;|> + // var y = `${ /*FIND ALL REFS*/x } ${ x }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === -// var [|x|] = 10; +// <|var [|{| isWriteAccess: true |}x|] = 10;|> // var y = `${ [|x|] } ${ /*FIND ALL REFS*/[|x|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "contextSpan": { - "start": 0, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates1.ts === + // <|var [|x|] = 10;|> + // var y = `${ x } ${ /*FIND ALL REFS*/x }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInsideTemplates2.baseline.jsonc b/tests/baselines/reference/findAllRefsInsideTemplates2.baseline.jsonc index 4e012f5dea7f3..6ce82dc33666f 100644 --- a/tests/baselines/reference/findAllRefsInsideTemplates2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInsideTemplates2.baseline.jsonc @@ -1,627 +1,417 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === -// /*FIND ALL REFS*/function [|f|](...rest: any[]) { } +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}f|](...rest: any[]) { }|> // [|f|] `${ [|f|] } ${ [|f|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "kind": "function", - "name": "function f(...rest: any[]): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "rest", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === + // /*FIND ALL REFS*/<|function [|f|](...rest: any[]) { }|> + // f `${ f } ${ f }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(...rest: any[]): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "rest", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === -// function /*FIND ALL REFS*/[|f|](...rest: any[]) { } +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|](...rest: any[]) { }|> // [|f|] `${ [|f|] } ${ [|f|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "kind": "function", - "name": "function f(...rest: any[]): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "rest", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === + // <|function /*FIND ALL REFS*/[|f|](...rest: any[]) { }|> + // f `${ f } ${ f }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(...rest: any[]): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "rest", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === -// function [|f|](...rest: any[]) { } +// <|function [|{| isWriteAccess: true |}f|](...rest: any[]) { }|> // /*FIND ALL REFS*/[|f|] `${ [|f|] } ${ [|f|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "kind": "function", - "name": "function f(...rest: any[]): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "rest", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === + // <|function [|f|](...rest: any[]) { }|> + // /*FIND ALL REFS*/f `${ f } ${ f }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(...rest: any[]): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "rest", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === -// function [|f|](...rest: any[]) { } +// <|function [|{| isWriteAccess: true |}f|](...rest: any[]) { }|> // [|f|] `${ /*FIND ALL REFS*/[|f|] } ${ [|f|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "kind": "function", - "name": "function f(...rest: any[]): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "rest", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === + // <|function [|f|](...rest: any[]) { }|> + // f `${ /*FIND ALL REFS*/f } ${ f }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(...rest: any[]): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "rest", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === -// function [|f|](...rest: any[]) { } +// <|function [|{| isWriteAccess: true |}f|](...rest: any[]) { }|> // [|f|] `${ [|f|] } ${ /*FIND ALL REFS*/[|f|] }` -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "kind": "function", - "name": "function f(...rest: any[]): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "rest", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideTemplates2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideTemplates2.ts === + // <|function [|f|](...rest: any[]) { }|> + // f `${ f } ${ /*FIND ALL REFS*/f }` + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(...rest: any[]): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "rest", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsInsideWithBlock.baseline.jsonc b/tests/baselines/reference/findAllRefsInsideWithBlock.baseline.jsonc index af59094c306d5..6193d20a11210 100644 --- a/tests/baselines/reference/findAllRefsInsideWithBlock.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsInsideWithBlock.baseline.jsonc @@ -1,349 +1,237 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === -// /*FIND ALL REFS*/var [|x|] = 0; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // // with ({}) { // var y = x; // Reference of x here should not be picked // y++; // also reference for y should be ignored // } // -// [|x|] = [|x|] + 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === + // /*FIND ALL REFS*/<|var [|x|] = 0;|> + // + // with ({}) { + // var y = x; // Reference of x here should not be picked + // y++; // also reference for y should be ignored + // } + // + // x = x + 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === -// var /*FIND ALL REFS*/[|x|] = 0; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // // with ({}) { // var y = x; // Reference of x here should not be picked // y++; // also reference for y should be ignored // } // -// [|x|] = [|x|] + 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === + // <|var /*FIND ALL REFS*/[|x|] = 0;|> + // + // with ({}) { + // var y = x; // Reference of x here should not be picked + // y++; // also reference for y should be ignored + // } + // + // x = x + 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // // with ({}) { // var y = x; // Reference of x here should not be picked // y++; // also reference for y should be ignored // } // -// /*FIND ALL REFS*/[|x|] = [|x|] + 1; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|] = [|x|] + 1; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === + // <|var [|x|] = 0;|> + // + // with ({}) { + // var y = x; // Reference of x here should not be picked + // y++; // also reference for y should be ignored + // } + // + // /*FIND ALL REFS*/x = x + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // // with ({}) { // var y = x; // Reference of x here should not be picked // y++; // also reference for y should be ignored // } // -// [|x|] = /*FIND ALL REFS*/[|x|] + 1; +// [|{| isWriteAccess: true |}x|] = /*FIND ALL REFS*/[|x|] + 1; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsInsideWithBlock.ts === + // <|var [|x|] = 0;|> + // + // with ({}) { + // var y = x; // Reference of x here should not be picked + // y++; // also reference for y should be ignored + // } + // + // x = /*FIND ALL REFS*/x + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsInsideWithBlock.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsIsDefinition.baseline.jsonc b/tests/baselines/reference/findAllRefsIsDefinition.baseline.jsonc index 9fc5c92f3b19f..0ce6163a14e78 100644 --- a/tests/baselines/reference/findAllRefsIsDefinition.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsIsDefinition.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === -// declare function [|foo|](a: number): number; -// declare function [|foo|](a: string): string; -// declare function [|foo|]/*FIND ALL REFS*/(a: string | number): string | number; +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}foo|](a: number): number;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}foo|](a: string): string;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}foo|]/*FIND ALL REFS*/(a: string | number): string | number;|> // // function foon(a: number): number; // function foon(a: string): string; @@ -25,164 +26,135 @@ // static init() { return new this() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "function", - "name": "function foo(a: number): number (+2 overloads)", - "textSpan": { - "start": 17, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 41, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 99, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 82, - "length": 58 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 279, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // <|declare function [|foo|](a: number): number;|> + // declare function foo(a: string): string; + // declare function foo/*FIND ALL REFS*/(a: string | number): string | number; + // + // function foon(a: number): number; + // function foon(a: string): string; + // function foon(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // export const bar = 123; + // console.log({ bar }); + // + // interface IFoo { + // foo(): void; + // } + // class Foo implements IFoo { + // constructor(n: number) + // constructor() + // constructor(n: number?) { } + // foo(): void { } + // static init() { return new this() } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(a: number): number (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === // declare function foo(a: number): number; // declare function foo(a: string): string; // declare function foo(a: string | number): string | number; // -// function [|foon|](a: number): number; -// function [|foon|](a: string): string; -// function [|foon|]/*FIND ALL REFS*/(a: string | number): string | number { +// <|function [|{| isDefinition: true |}foon|](a: number): number;|> +// <|function [|{| isDefinition: true |}foon|](a: string): string;|> +// <|function [|{| isWriteAccess: true, isDefinition: true |}foon|]/*FIND ALL REFS*/(a: string | number): string | number { // return a -// } +// }|> // // foo; [|foon|]; // @@ -200,154 +172,125 @@ // static init() { return new this() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "function", - "name": "function foon(a: number): number (+1 overload)", - "textSpan": { - "start": 151, - "length": 4 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foon", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 142, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 142, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 185, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 176, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 219, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 210, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 284, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // declare function foo(a: number): number; + // declare function foo(a: string): string; + // declare function foo(a: string | number): string | number; + // + // <|function [|foon|](a: number): number;|> + // function foon(a: string): string; + // function foon/*FIND ALL REFS*/(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // export const bar = 123; + // console.log({ bar }); + // + // interface IFoo { + // foo(): void; + // } + // class Foo implements IFoo { + // constructor(n: number) + // constructor() + // constructor(n: number?) { } + // foo(): void { } + // static init() { return new this() } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foon(a: number): number (+1 overload)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foon", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === // declare function foo(a: number): number; // declare function foo(a: string): string; @@ -361,8 +304,8 @@ // // foo; foon; // -// export const [|bar|]/*FIND ALL REFS*/ = 123; -// console.log({ [|bar|] }); +// <|export const [|{| isWriteAccess: true, isDefinition: true |}bar|]/*FIND ALL REFS*/ = 123;|> +// console.log({ [|{| isWriteAccess: true |}bar|] }); // // interface IFoo { // foo(): void; @@ -375,76 +318,73 @@ // static init() { return new this() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "const", - "name": "const bar: 123", - "textSpan": { - "start": 304, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "123", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 291, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 304, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 291, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 329, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // declare function foo(a: number): number; + // declare function foo(a: string): string; + // declare function foo(a: string | number): string | number; + // + // function foon(a: number): number; + // function foon(a: string): string; + // function foon(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // <|export const [|bar|]/*FIND ALL REFS*/ = 123;|> + // console.log({ bar }); + // + // interface IFoo { + // foo(): void; + // } + // class Foo implements IFoo { + // constructor(n: number) + // constructor() + // constructor(n: number?) { } + // foo(): void { } + // static init() { return new this() } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const bar: 123", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "123", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === // declare function foo(a: number): number; // declare function foo(a: string): string; @@ -462,183 +402,165 @@ // console.log({ bar }); // // interface IFoo { -// [|foo|]/*FIND ALL REFS*/(): void; +// <|[|{| defId: 0, isDefinition: true |}foo|]/*FIND ALL REFS*/(): void;|> // } // class Foo implements IFoo { // constructor(n: number) // constructor() // constructor(n: number?) { } -// [|foo|](): void { } +// <|[|{| defId: 1, isWriteAccess: true |}foo|](): void { }|> // static init() { return new this() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "method", - "name": "(method) IFoo.foo(): void", - "textSpan": { - "start": 359, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 359, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 359, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 359, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // declare function foo(a: number): number; + // declare function foo(a: string): string; + // declare function foo(a: string | number): string | number; + // + // function foon(a: number): number; + // function foon(a: string): string; + // function foon(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // export const bar = 123; + // console.log({ bar }); + // + // interface IFoo { + // <|[|{| defId: 0 |}foo|]/*FIND ALL REFS*/(): void;|> + // } + // class Foo implements IFoo { + // constructor(n: number) + // constructor() + // constructor(n: number?) { } + // <|[|{| defId: 1 |}foo|](): void { }|> + // static init() { return new this() } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) IFoo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "method", - "name": "(method) Foo.foo(): void", - "textSpan": { - "start": 483, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 483, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 483, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 483, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === // declare function foo(a: number): number; // declare function foo(a: string): string; @@ -659,97 +581,68 @@ // foo(): void; // } // class Foo implements IFoo { -// [|constructor|](n: number) -// [|constructor|]() -// /*FIND ALL REFS*/[|constructor|](n: number?) { } +// <|[|{| isDefinition: true |}constructor|](n: number)|> +// <|[|{| isDefinition: true |}constructor|]()|> +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|](n: number?) { }|> // foo(): void { } // static init() { return new [|this|]() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "class", - "name": "class Foo", - "textSpan": { - "start": 380, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 374, - "length": 166 - } - }, - "references": [ - { - "textSpan": { - "start": 406, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 406, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 433, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 433, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 451, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 451, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 530, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // declare function foo(a: number): number; + // declare function foo(a: string): string; + // declare function foo(a: string | number): string | number; + // + // function foon(a: number): number; + // function foon(a: string): string; + // function foon(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // export const bar = 123; + // console.log({ bar }); + // + // interface IFoo { + // foo(): void; + // } + // <|class [|Foo|] implements IFoo { + // constructor(n: number) + // constructor() + // /*FIND ALL REFS*/constructor(n: number?) { } + // foo(): void { } + // static init() { return new this() } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === // declare function foo(a: number): number; // declare function foo(a: string): string; @@ -767,179 +660,158 @@ // console.log({ bar }); // // interface IFoo { -// [|foo|](): void; +// <|[|{| defId: 0 |}foo|](): void;|> // } // class Foo implements IFoo { // constructor(n: number) // constructor() // constructor(n: number?) { } -// [|foo|]/*FIND ALL REFS*/(): void { } +// <|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}foo|]/*FIND ALL REFS*/(): void { }|> // static init() { return new this() } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "method", - "name": "(method) IFoo.foo(): void", - "textSpan": { - "start": 359, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 359, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 359, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 359, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsIsDefinition.ts === + // declare function foo(a: number): number; + // declare function foo(a: string): string; + // declare function foo(a: string | number): string | number; + // + // function foon(a: number): number; + // function foon(a: string): string; + // function foon(a: string | number): string | number { + // return a + // } + // + // foo; foon; + // + // export const bar = 123; + // console.log({ bar }); + // + // interface IFoo { + // <|[|{| defId: 0 |}foo|](): void;|> + // } + // class Foo implements IFoo { + // constructor(n: number) + // constructor() + // constructor(n: number?) { } + // <|[|{| defId: 1 |}foo|]/*FIND ALL REFS*/(): void { }|> + // static init() { return new this() } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) IFoo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "kind": "method", - "name": "(method) Foo.foo(): void", - "textSpan": { - "start": 483, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 483, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 483, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsIsDefinition.ts", - "contextSpan": { - "start": 483, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTemplateTag_class.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTemplateTag_class.baseline.jsonc index b17fbff6b2197..aee3ea5e0c2fb 100644 --- a/tests/baselines/reference/findAllRefsJsDocTemplateTag_class.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTemplateTag_class.baseline.jsonc @@ -1,177 +1,141 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts === // /** @template /*FIND ALL REFS*/[|T|] */ -// class C<[|T|]> {} +// class C<[|{| isWriteAccess: true |}T|]> {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "kind": "type parameter", - "name": "(type parameter) T in C", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts === + // /** @template /*FIND ALL REFS*/T */ + // class C<[|T|]> {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts === // /** @template [|T|] */ -// class C {} +// class C {} + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts === + // /** @template T */ + // class C {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "kind": "type parameter", - "name": "(type parameter) T in C", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_class.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTemplateTag_class_js.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTemplateTag_class_js.baseline.jsonc index 0a4f0bb8ea79f..1b94f599f3d80 100644 --- a/tests/baselines/reference/findAllRefsJsDocTemplateTag_class_js.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTemplateTag_class_js.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /a.js === -// /** @template /*FIND ALL REFS*/[|T|] */ +// /** @template /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] */ // class C { // constructor() { // /** @type {[|T|]} */ @@ -7,94 +8,81 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type parameter", - "name": "(type parameter) T in C", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 68, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** @template /*FIND ALL REFS*/[|T|] */ + // class C { + // constructor() { + // /** @type {T} */ + // this.x = null; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === -// /** @template [|T|] */ +// /** @template [|{| isWriteAccess: true |}T|] */ // class C { // constructor() { // /** @type {/*FIND ALL REFS*/[|T|]} */ @@ -102,86 +90,72 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type parameter", - "name": "(type parameter) T in C", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 68, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** @template [|T|] */ + // class C { + // constructor() { + // /** @type {/*FIND ALL REFS*/T} */ + // this.x = null; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTemplateTag_function.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTemplateTag_function.baseline.jsonc index f58585cfa3a9e..756b1e44e347a 100644 --- a/tests/baselines/reference/findAllRefsJsDocTemplateTag_function.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTemplateTag_function.baseline.jsonc @@ -1,217 +1,181 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts === // /** @template /*FIND ALL REFS*/[|T|] */ -// function f<[|T|]>() {} +// function f<[|{| isWriteAccess: true |}T|]>() {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "kind": "type parameter", - "name": "(type parameter) T in f(): void", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts === + // /** @template /*FIND ALL REFS*/T */ + // function f<[|T|]>() {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in f(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts === // /** @template [|T|] */ -// function f() {} +// function f() {} + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts === + // /** @template T */ + // function f() {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "kind": "type parameter", - "name": "(type parameter) T in f(): void", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsJsDocTemplateTag_function.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in f(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTemplateTag_function_js.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTemplateTag_function_js.baseline.jsonc index 18b0a4f709677..e2732b212faa4 100644 --- a/tests/baselines/reference/findAllRefsJsDocTemplateTag_function_js.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTemplateTag_function_js.baseline.jsonc @@ -1,127 +1,97 @@ +// === findAllReferences === // === /a.js === // /** -// * @template /*FIND ALL REFS*/[|T|] +// * @template /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] // * @return {[|T|]} // */ // function f() {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type parameter", - "name": "(type parameter) T", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** + // * @template /*FIND ALL REFS*/[|T|] + // * @return {T} + // */ + // function f() {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** -// * @template [|T|] +// * @template [|{| isWriteAccess: true |}T|] // * @return {/*FIND ALL REFS*/[|T|]} // */ // function f() {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type parameter", - "name": "(type parameter) T", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** + // * @template [|T|] + // * @return {/*FIND ALL REFS*/T} + // */ + // function f() {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTypeDef.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTypeDef.baseline.jsonc index 66dc9051da651..ef5a8ab417c6c 100644 --- a/tests/baselines/reference/findAllRefsJsDocTypeDef.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTypeDef.baseline.jsonc @@ -1 +1,4 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsJsDocTypeDef.ts === +// /** @typedef {Object} /*FIND ALL REFS*/T */ +// function foo() {} \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsDocTypeDef_js.baseline.jsonc b/tests/baselines/reference/findAllRefsJsDocTypeDef_js.baseline.jsonc index e41432e9ae8e9..0612098235f6a 100644 --- a/tests/baselines/reference/findAllRefsJsDocTypeDef_js.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsDocTypeDef_js.baseline.jsonc @@ -1,7 +1,22 @@ -undefined +// === findAllReferences === +// === /a.js === +// /** /*FIND ALL REFS*/@typedef {number} T */ +// +// /** +// * @return {T} +// */ +// function f(obj) { return 0; } +// +// /** +// * @return {T} +// */ +// function f2(obj) { return 0; } + + +// === findAllReferences === // === /a.js === -// /** @typedef {number} /*FIND ALL REFS*/[|T|] */ +// /** <|@typedef {number} /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|]|> */ // // /** // * @return {[|T|]} @@ -13,91 +28,65 @@ undefined // */ // function f2(obj) { return 0; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 22, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 4, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 4, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** <|@typedef {number} /*FIND ALL REFS*/[|T|]|> */ + // + // /** + // * @return {T} + // */ + // function f(obj) { return 0; } + // + // /** + // * @return {T} + // */ + // function f2(obj) { return 0; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === -// /** @typedef {number} [|T|] */ +// /** <|@typedef {number} [|{| isWriteAccess: true |}T|]|> */ // // /** // * @return {/*FIND ALL REFS*/[|T|]} @@ -109,88 +98,65 @@ undefined // */ // function f2(obj) { return 0; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 22, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 4, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 4, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** <|@typedef {number} [|T|]|> */ + // + // /** + // * @return {/*FIND ALL REFS*/T} + // */ + // function f(obj) { return 0; } + // + // /** + // * @return {T} + // */ + // function f2(obj) { return 0; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === -// /** @typedef {number} [|T|] */ +// /** <|@typedef {number} [|{| isWriteAccess: true |}T|]|> */ // // /** // * @return {[|T|]} @@ -202,82 +168,56 @@ undefined // */ // function f2(obj) { return 0; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 22, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 4, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 4, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** <|@typedef {number} [|T|]|> */ + // + // /** + // * @return {T} + // */ + // function f(obj) { return 0; } + // + // /** + // * @return {/*FIND ALL REFS*/T} + // */ + // function f2(obj) { return 0; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsJsThisPropertyAssignment.baseline.jsonc b/tests/baselines/reference/findAllRefsJsThisPropertyAssignment.baseline.jsonc index e129caedd1322..1191c41be1f2a 100644 --- a/tests/baselines/reference/findAllRefsJsThisPropertyAssignment.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsJsThisPropertyAssignment.baseline.jsonc @@ -1,200 +1,134 @@ +// === findAllReferences === // === /tests/cases/fourslash/infer.d.ts === -// export declare function infer(o: { m(): void } & ThisType<{ [|x|]: number }>): void; +// export declare function infer(o: { m(): void } & ThisType<{ <|[|{| isWriteAccess: true |}x|]: number|> }>): void; // === /tests/cases/fourslash/a.js === // import { infer } from "./infer"; // infer({ // m() { -// this.[|x|] = 1; +// <|this.[|{| isWriteAccess: true |}x|] = 1;|> // this./*FIND ALL REFS*/[|x|]; // }, // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/infer.d.ts", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 60, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 60, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/infer.d.ts", - "contextSpan": { - "start": 60, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 59, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 84, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/infer.d.ts === + // export declare function infer(o: { m(): void } & ThisType<{ <|[|x|]: number|> }>): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.js === // /** // * @template T -// * @param {{m(): void} & ThisType<{[|x|]: number}>} o +// * @param {{m(): void} & ThisType<{<|[|x|]: number|>}>} o // */ // function infer(o) {} // infer({ // m() { -// this.[|x|] = 2; +// <|this.[|{| isWriteAccess: true |}x|] = 2;|> // this./*FIND ALL REFS*/[|x|]; // }, // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 54, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 54, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 125, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 120, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/b.js === + // /** + // * @template T + // * @param {{m(): void} & ThisType<{<|[|x|]: number|>}>} o + // */ + // function infer(o) {} + // infer({ + // m() { + // this.x = 2; + // this./*FIND ALL REFS*/x; + // }, + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsMappedType.baseline.jsonc b/tests/baselines/reference/findAllRefsMappedType.baseline.jsonc index cad1b8bdd39d1..fdff458fb4cf5 100644 --- a/tests/baselines/reference/findAllRefsMappedType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsMappedType.baseline.jsonc @@ -1,302 +1,213 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsMappedType.ts === -// interface T { /*FIND ALL REFS*/[|a|]: number; } +// interface T { /*FIND ALL REFS*/<|[|{| isDefinition: true |}a|]: number;|> } // type U = { readonly [K in keyof T]?: string }; // declare const t: T; // t.[|a|]; // declare const u: U; // u.[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "kind": "property", - "name": "(property) T.a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 96, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 121, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsMappedType.ts === + // interface T { /*FIND ALL REFS*/<|[|a|]: number;|> } + // type U = { readonly [K in keyof T]?: string }; + // declare const t: T; + // t.a; + // declare const u: U; + // u.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) T.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsMappedType.ts === -// interface T { [|a|]: number; } +// interface T { <|[|a|]: number;|> } // type U = { readonly [K in keyof T]?: string }; // declare const t: T; // t./*FIND ALL REFS*/[|a|]; // declare const u: U; // u.[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "kind": "property", - "name": "(property) T.a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 96, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsMappedType.ts === + // interface T { <|[|a|]: number;|> } + // type U = { readonly [K in keyof T]?: string }; + // declare const t: T; + // t./*FIND ALL REFS*/a; + // declare const u: U; + // u.a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) T.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsMappedType.ts === -// interface T { [|a|]: number; } +// interface T { <|[|a|]: number;|> } // type U = { readonly [K in keyof T]?: string }; // declare const t: T; // t.[|a|]; // declare const u: U; // u./*FIND ALL REFS*/[|a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "kind": "property", - "name": "(property) T.a: number", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 96, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsMappedType.ts === + // interface T { <|[|a|]: number;|> } + // type U = { readonly [K in keyof T]?: string }; + // declare const t: T; + // t.a; + // declare const u: U; + // u./*FIND ALL REFS*/a; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) T.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsMappedType_nonHomomorphic.baseline.jsonc b/tests/baselines/reference/findAllRefsMappedType_nonHomomorphic.baseline.jsonc index d175399f90a83..dbe73ca138e8d 100644 --- a/tests/baselines/reference/findAllRefsMappedType_nonHomomorphic.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsMappedType_nonHomomorphic.baseline.jsonc @@ -1,147 +1,117 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts === // function f(x: { [K in "m"]: number; }) { // x./*FIND ALL REFS*/[|m|]; // x.[|m|] // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "kind": "property", - "name": "(property) m: number", - "textSpan": { - "start": 47, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "m", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 47, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts === + // function f(x: { [K in "m"]: number; }) { + // x./*FIND ALL REFS*/[|m|]; + // x.m + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) m: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "m", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts === // function f(x: { [K in "m"]: number; }) { // x.[|m|]; // x./*FIND ALL REFS*/[|m|] // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "kind": "property", - "name": "(property) m: number", - "textSpan": { - "start": 56, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "m", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 47, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsMappedType_nonHomomorphic.ts === + // function f(x: { [K in "m"]: number; }) { + // x.m; + // x./*FIND ALL REFS*/[|m|] + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) m: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "m", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsModuleAugmentation.baseline.jsonc b/tests/baselines/reference/findAllRefsModuleAugmentation.baseline.jsonc index a3aa3cc70a823..5745390949f44 100644 --- a/tests/baselines/reference/findAllRefsModuleAugmentation.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsModuleAugmentation.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /node_modules/foo/index.d.ts === -// /*FIND ALL REFS*/export type [|T|] = number; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> // === /a.ts === // import * as foo from "foo"; @@ -7,82 +8,55 @@ // export const x: [|T|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/foo/index.d.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/node_modules/foo/index.d.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /node_modules/foo/index.d.ts === + // /*FIND ALL REFS*/<|export type [|T|] = number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /node_modules/foo/index.d.ts === -// export type /*FIND ALL REFS*/[|T|] = number; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> // === /a.ts === // import * as foo from "foo"; @@ -90,82 +64,55 @@ // export const x: [|T|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/foo/index.d.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/node_modules/foo/index.d.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /node_modules/foo/index.d.ts === + // <|export type /*FIND ALL REFS*/[|T|] = number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /node_modules/foo/index.d.ts === -// export type [|T|] = number; +// <|export type [|{| isWriteAccess: true |}T|] = number;|> // === /a.ts === // import * as foo from "foo"; @@ -173,74 +120,46 @@ // export const x: /*FIND ALL REFS*/[|T|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/node_modules/foo/index.d.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/node_modules/foo/index.d.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /node_modules/foo/index.d.ts === + // <|export type [|T|] = number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsModuleDotExports.baseline.jsonc b/tests/baselines/reference/findAllRefsModuleDotExports.baseline.jsonc index cd1f04a7d20ff..c95be2f8836bd 100644 --- a/tests/baselines/reference/findAllRefsModuleDotExports.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsModuleDotExports.baseline.jsonc @@ -1,175 +1,105 @@ +// === findAllReferences === // === /a.js === -// /*FIND ALL REFS*/const [|b|] = require("./b"); +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}b|] = require("./b");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "import b", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.js === + // /*FIND ALL REFS*/<|const [|b|] = require("./b");|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import b", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /b.js === -// [|module|].exports = 0; +// === findAllReferences === // === /a.js === -// const b = require("/*FIND ALL REFS*/[|./b|]"); +// <|const b = require("/*FIND ALL REFS*/[|./b|]");|> + +// === /b.js === +// <|[|module|].exports = 0;|> + + // === Definitions === + // === /b.js === + // [|module.exports = 0;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "module", - "name": "module \"/b\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/b\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 6 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/b\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /b.js === -// /*FIND ALL REFS*/[|module|].exports = 0; +// === findAllReferences === // === /a.js === -// const b = require("[|./b|]"); +// <|const b = require("[|./b|]");|> + +// === /b.js === +// /*FIND ALL REFS*/<|[|module|].exports = 0;|> + + // === Definitions === + // === /b.js === + // /*FIND ALL REFS*/[|module.exports = 0;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.js", - "kind": "module", - "name": "module \"/b\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/b\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 6 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/b\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/b\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsNoImportClause.baseline.jsonc b/tests/baselines/reference/findAllRefsNoImportClause.baseline.jsonc index 0397e8cfd9919..8449749e53de1 100644 --- a/tests/baselines/reference/findAllRefsNoImportClause.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsNoImportClause.baseline.jsonc @@ -1,65 +1,49 @@ -undefined +// === findAllReferences === +// === /a.ts === +// /*FIND ALL REFS*/export const x = 0; + + +// === findAllReferences === // === /a.ts === -// export const /*FIND ALL REFS*/[|x|] = 0; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> + + // === Definitions === + // === /a.ts === + // <|export const /*FIND ALL REFS*/[|x|] = 0;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsNonModule.baseline.jsonc b/tests/baselines/reference/findAllRefsNonModule.baseline.jsonc index 06911a76740d6..70eb561f41a40 100644 --- a/tests/baselines/reference/findAllRefsNonModule.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsNonModule.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /import.ts === // import [|"./script/*FIND ALL REFS*/"|]; @@ -8,54 +9,29 @@ // === /tripleSlash.ts === // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/import.ts", - "kind": "var", - "name": "./script", - "textSpan": { - "start": 8, - "length": 8 - }, - "displayParts": [ - { - "text": "\"./script\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/import.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 10 - }, - "fileName": "/require.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 21, - "length": 9 - }, - "fileName": "/tripleSlash.ts", - "isWriteAccess": false - } + // === Definitions === + // === /import.ts === + // import "[|./script|]/*FIND ALL REFS*/"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "./script", + "displayParts": [ + { + "text": "\"./script\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /import.ts === // import [|"./script"|]; @@ -66,112 +42,54 @@ // === /tripleSlash.ts === // /// -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/require.js", - "kind": "var", - "name": "./script", - "textSpan": { - "start": 9, - "length": 8 - }, - "displayParts": [ - { - "text": "\"./script\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 10 - }, - "fileName": "/import.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 10 - }, - "fileName": "/require.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 21, - "length": 9 - }, - "fileName": "/tripleSlash.ts", - "isWriteAccess": false - } + // === Definitions === + // === /require.js === + // require("[|./script|]/*FIND ALL REFS*/"); + // console.log("./script"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "./script", + "displayParts": [ + { + "text": "\"./script\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /require.js === -// require("[|./script|]"); -// console.log("[|./script|]/*FIND ALL REFS*/"); +// <|require("[|{| isInString: true |}./script|]");|> +// console.log("[|{| isInString: true |}./script|]/*FIND ALL REFS*/"); // === /stringLiteral.ts === -// console.log("[|./script|]"); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/require.js", - "kind": "var", - "name": "./script", - "textSpan": { - "start": 34, - "length": 8 - }, - "displayParts": [ - { - "text": "\"./script\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 8 - }, - "fileName": "/require.js", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": false, - "isInString": true - }, - { - "textSpan": { - "start": 34, - "length": 8 - }, - "fileName": "/require.js", - "isWriteAccess": false, - "isInString": true - }, - { - "textSpan": { - "start": 13, - "length": 8 - }, - "fileName": "/stringLiteral.ts", - "isWriteAccess": false, - "isInString": true - } +// console.log("[|{| isInString: true |}./script|]"); + + // === Definitions === + // === /require.js === + // require("./script"); + // console.log("[|./script|]/*FIND ALL REFS*/"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "./script", + "displayParts": [ + { + "text": "\"./script\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName01.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName01.baseline.jsonc index 5f7e00d9c7758..af63cf287e11c 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName01.baseline.jsonc @@ -1,197 +1,157 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts === // interface I { -// /*FIND ALL REFS*/[|property1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property1|]: number;|> // property2: string; // } // // var foo: I; -// var { [|property1|]: prop1 } = foo; +// <|var { [|property1|]: prop1 } = foo;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 81, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts === + // interface I { + // /*FIND ALL REFS*/<|[|property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // var { property1: prop1 } = foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts === +// interface I { +// property1: number; +// property2: string; +// } +// +// var foo: I; +// /*FIND ALL REFS*/var { property1: prop1 } = foo; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // // var foo: I; -// var { /*FIND ALL REFS*/[|property1|]: prop1 } = foo; +// <|var { /*FIND ALL REFS*/[|property1|]: prop1 } = foo;|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // var { /*FIND ALL REFS*/property1: prop1 } = foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 81, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName01.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName02.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName02.baseline.jsonc index e6390ad4965d4..d19a2dc76b0c8 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName02.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName02.baseline.jsonc @@ -1,197 +1,157 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts === // interface I { -// /*FIND ALL REFS*/[|property1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property1|]: number;|> // property2: string; // } // // var foo: I; -// var { [|property1|]: {} } = foo; +// <|var { [|property1|]: {} } = foo;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 81, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "contextSpan": { - "start": 75, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts === + // interface I { + // /*FIND ALL REFS*/<|[|property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // var { property1: {} } = foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts === +// interface I { +// property1: number; +// property2: string; +// } +// +// var foo: I; +// /*FIND ALL REFS*/var { property1: {} } = foo; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // // var foo: I; -// var { /*FIND ALL REFS*/[|property1|]: {} } = foo; +// <|var { /*FIND ALL REFS*/[|property1|]: {} } = foo;|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // var { /*FIND ALL REFS*/property1: {} } = foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 81, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName02.ts", - "contextSpan": { - "start": 75, - "length": 28 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName03.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName03.baseline.jsonc index 580591ae40b07..e5d45840f937e 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName03.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName03.baseline.jsonc @@ -1,268 +1,179 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts === // interface I { -// /*FIND ALL REFS*/[|property1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property1|]: number;|> // property2: string; // } // // var foo: I; -// var [ { [|property1|]: prop1 }, { [|property1|], property2 } ] = [foo, foo]; +// <|<|var [ { [|{| contextId: 1 |}property1|]: prop1 }, { [|{| contextId: 2, isWriteAccess: true |}property1|], property2 } ] = [foo, foo];|>|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 75, - "length": 68 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 105, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 75, - "length": 68 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts === + // interface I { + // /*FIND ALL REFS*/<|[|property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // var [ { property1: prop1 }, { property1, property2 } ] = [foo, foo]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts === // interface I { -// [|property1|]: number; +// <|[|{| defId: 0 |}property1|]: number;|> // property2: string; // } // // var foo: I; -// var [ { [|property1|]: prop1 }, { /*FIND ALL REFS*/[|property1|], property2 } ] = [foo, foo]; +// <|<|var [ { [|{| contextId: 1, defId: 0 |}property1|]: prop1 }, { /*FIND ALL REFS*/[|{| contextId: 2, defId: 1, isWriteAccess: true, isDefinition: true |}property1|], property2 } ] = [foo, foo];|>|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts === + // interface I { + // <|[|{| defId: 0 |}property1|]: number;|> + // property2: string; + // } + // + // var foo: I; + // <|var [ { property1: prop1 }, { /*FIND ALL REFS*/[|{| defId: 1 |}property1|], property2 } ] = [foo, foo];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 83, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 75, - "length": 68 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "kind": "var", - "name": "var property1: number", - "textSpan": { - "start": 105, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property1", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 75, - "length": 68 - } - }, - "references": [ - { - "textSpan": { - "start": 105, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName03.ts", - "contextSpan": { - "start": 75, - "length": 68 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var property1: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property1", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName04.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName04.baseline.jsonc index b73b8d729d246..87282714cb5cc 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName04.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName04.baseline.jsonc @@ -1,410 +1,292 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === // interface I { -// /*FIND ALL REFS*/[|property1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property1|]: number;|> // property2: string; // } // -// function f({ [|property1|]: p1 }: I, -// { [|property1|] }: I, +// function f(<|{ [|property1|]: p1 }: I|>, +// <|{ [|{| isWriteAccess: true |}property1|] }: I|>, // { property1: p2 }) { // // return property1 + 1; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 76, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 74, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 109, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 107, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === + // interface I { + // /*FIND ALL REFS*/<|[|property1|]: number;|> + // property2: string; + // } + // + // function f({ property1: p1 }: I, + // { property1 }: I, + // { property1: p2 }) { + // + // return property1 + 1; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // -// function f({ /*FIND ALL REFS*/[|property1|]: p1 }: I, -// { [|property1|] }: I, +// function f(<|{ /*FIND ALL REFS*/[|property1|]: p1 }: I|>, +// <|{ [|{| isWriteAccess: true |}property1|] }: I|>, // { property1: p2 }) { // // return property1 + 1; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 76, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 74, - "length": 20 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 109, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 107, - "length": 16 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // function f({ /*FIND ALL REFS*/property1: p1 }: I, + // { property1 }: I, + // { property1: p2 }) { + // + // return property1 + 1; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === // interface I { -// [|property1|]: number; +// <|[|{| defId: 0 |}property1|]: number;|> // property2: string; // } // -// function f({ [|property1|]: p1 }: I, -// { /*FIND ALL REFS*/[|property1|] }: I, +// function f(<|{ [|{| defId: 0 |}property1|]: p1 }: I|>, +// <|{ /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}property1|] }: I|>, // { property1: p2 }) { // -// return [|property1|] + 1; +// return [|{| defId: 1 |}property1|] + 1; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 76, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 74, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === + // interface I { + // <|[|{| defId: 0 |}property1|]: number;|> + // property2: string; + // } + // + // function f({ property1: p1 }: I, + // <|{ /*FIND ALL REFS*/[|{| defId: 1 |}property1|] }: I|>, + // { property1: p2 }) { + // + // return property1 + 1; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "kind": "parameter", - "name": "(parameter) property1: number", - "textSpan": { - "start": 109, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property1", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 107, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 109, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 107, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 169, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === // interface I { // property1: number; @@ -412,84 +294,66 @@ // } // // function f({ property1: p1 }: I, -// { [|property1|] }: I, +// <|{ [|{| isWriteAccess: true |}property1|] }: I|>, // { property1: p2 }) { // // return /*FIND ALL REFS*/[|property1|] + 1; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "kind": "parameter", - "name": "(parameter) property1: number", - "textSpan": { - "start": 109, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property1", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 107, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 109, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "contextSpan": { - "start": 107, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 169, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName04.ts === + // interface I { + // property1: number; + // property2: string; + // } + // + // function f({ property1: p1 }: I, + // <|{ [|property1|] }: I|>, + // { property1: p2 }) { + // + // return /*FIND ALL REFS*/property1 + 1; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName05.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName05.baseline.jsonc index 66dc9051da651..f109fd20efbe6 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName05.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName05.baseline.jsonc @@ -1 +1,10 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName05.ts === +// interface I { +// property1: number; +// property2: string; +// } +// +// function f({ /*FIND ALL REFS*/property1: p }, { property1 }) { +// let x = property1; +// } \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName06.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName06.baseline.jsonc index 0a5c2d0557ada..03a9a95ceef24 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName06.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName06.baseline.jsonc @@ -1,764 +1,481 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === // interface I { -// /*FIND ALL REFS*/[|property1|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property1|]: number;|> // property2: string; // } // // var elems: I[]; -// for (let { [|property1|]: p } of elems) { +// for (<|let { [|property1|]: p } of elems|>) { // } -// for (let { [|property1|] } of elems) { +// for (<|let { [|{| isWriteAccess: true |}property1|] } of elems|>) { // } -// for (var { [|property1|]: p1 } of elems) { +// for (<|var { [|property1|]: p1 } of elems|>) { // } // var p2; -// for ({ [|property1|] : p2 } of elems) { +// for (<|{ [|{| isWriteAccess: true |}property1|] : p2 } of elems|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 90, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 84, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 130, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 124, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 167, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 161, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 212, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 210, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === + // interface I { + // /*FIND ALL REFS*/<|[|property1|]: number;|> + // property2: string; + // } + // + // var elems: I[]; + // for (let { property1: p } of elems) { + // } + // for (let { property1 } of elems) { + // } + // for (var { property1: p1 } of elems) { + // } + // var p2; + // for ({ property1 : p2 } of elems) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // // var elems: I[]; -// for (let { /*FIND ALL REFS*/[|property1|]: p } of elems) { +// for (<|let { /*FIND ALL REFS*/[|property1|]: p } of elems|>) { // } -// for (let { [|property1|] } of elems) { +// for (<|let { [|{| isWriteAccess: true |}property1|] } of elems|>) { // } -// for (var { [|property1|]: p1 } of elems) { +// for (<|var { [|property1|]: p1 } of elems|>) { // } // var p2; -// for ({ [|property1|] : p2 } of elems) { +// for (<|{ [|{| isWriteAccess: true |}property1|] : p2 } of elems|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 90, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 84, - "length": 29 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 130, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 124, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 167, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 161, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 212, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 210, - "length": 27 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // var elems: I[]; + // for (let { /*FIND ALL REFS*/property1: p } of elems) { + // } + // for (let { property1 } of elems) { + // } + // for (var { property1: p1 } of elems) { + // } + // var p2; + // for ({ property1 : p2 } of elems) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // // var elems: I[]; -// for (let { [|property1|]: p } of elems) { +// for (<|let { [|property1|]: p } of elems|>) { // } -// for (let { [|property1|] } of elems) { +// for (<|let { [|{| isWriteAccess: true |}property1|] } of elems|>) { // } -// for (var { /*FIND ALL REFS*/[|property1|]: p1 } of elems) { +// for (<|var { /*FIND ALL REFS*/[|property1|]: p1 } of elems|>) { // } // var p2; -// for ({ [|property1|] : p2 } of elems) { +// for (<|{ [|{| isWriteAccess: true |}property1|] : p2 } of elems|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 90, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 84, - "length": 29 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 130, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 124, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 167, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 161, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 212, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 210, - "length": 27 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // var elems: I[]; + // for (let { property1: p } of elems) { + // } + // for (let { property1 } of elems) { + // } + // for (var { /*FIND ALL REFS*/property1: p1 } of elems) { + // } + // var p2; + // for ({ property1 : p2 } of elems) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === // interface I { -// [|property1|]: number; +// <|[|property1|]: number;|> // property2: string; // } // // var elems: I[]; -// for (let { [|property1|]: p } of elems) { +// for (<|let { [|property1|]: p } of elems|>) { // } -// for (let { [|property1|] } of elems) { +// for (<|let { [|{| isWriteAccess: true |}property1|] } of elems|>) { // } -// for (var { [|property1|]: p1 } of elems) { +// for (<|var { [|property1|]: p1 } of elems|>) { // } // var p2; -// for ({ /*FIND ALL REFS*/[|property1|] : p2 } of elems) { +// for (<|{ /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}property1|] : p2 } of elems|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 90, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 84, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 130, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 124, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 167, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 161, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 212, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 210, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === + // interface I { + // <|[|property1|]: number;|> + // property2: string; + // } + // + // var elems: I[]; + // for (let { property1: p } of elems) { + // } + // for (let { property1 } of elems) { + // } + // for (var { property1: p1 } of elems) { + // } + // var p2; + // for ({ /*FIND ALL REFS*/property1 : p2 } of elems) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === // interface I { -// [|property1|]: number; +// <|[|{| defId: 0 |}property1|]: number;|> // property2: string; // } // // var elems: I[]; -// for (let { [|property1|]: p } of elems) { +// for (<|let { [|{| defId: 0 |}property1|]: p } of elems|>) { // } -// for (let { /*FIND ALL REFS*/[|property1|] } of elems) { +// for (<|let { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}property1|] } of elems|>) { // } -// for (var { [|property1|]: p1 } of elems) { +// for (<|var { [|{| defId: 0 |}property1|]: p1 } of elems|>) { // } // var p2; -// for ({ [|property1|] : p2 } of elems) { +// for (<|{ [|{| defId: 0, isWriteAccess: true |}property1|] : p2 } of elems|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "property", - "name": "(property) I.property1: number", - "textSpan": { - "start": 18, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 18, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 90, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 84, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 167, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 161, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 212, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 210, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts === + // interface I { + // <|[|{| defId: 0 |}property1|]: number;|> + // property2: string; + // } + // + // var elems: I[]; + // for (let { property1: p } of elems) { + // } + // for (<|let { /*FIND ALL REFS*/[|{| defId: 1 |}property1|] } of elems|>) { + // } + // for (var { property1: p1 } of elems) { + // } + // var p2; + // for ({ property1 : p2 } of elems) { + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.property1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "kind": "let", - "name": "let property1: number", - "textSpan": { - "start": 130, - "length": 9 - }, - "displayParts": [ - { - "text": "let", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "property1", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 124, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 130, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName06.ts", - "contextSpan": { - "start": 124, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "let", + "name": "let property1: number", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "property1", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName07.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName07.baseline.jsonc index 437475ce3de77..56731c0e12163 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName07.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName07.baseline.jsonc @@ -1,86 +1,55 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName07.ts === // let p, b; // -// p, [{ /*FIND ALL REFS*/[|a|]: p, b }] = [{ [|a|]: 10, b: true }]; +// p, <|[{ /*FIND ALL REFS*/[|{| isDefinition: true |}a|]: p, b }] = [{ <|[|{| isWriteAccess: true |}a|]: 10|>, b: true }]|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName07.ts", - "kind": "property", - "name": "(property) a: any", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName07.ts", - "contextSpan": { - "start": 14, - "length": 36 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName07.ts", - "contextSpan": { - "start": 33, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName07.ts === + // let p, b; + // + // p, <|[{ /*FIND ALL REFS*/[|a|]: p, b }] = [{ a: 10, b: true }]|>; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName10.baseline.jsonc b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName10.baseline.jsonc index 677c25c16b2c2..51b5032fa7342 100644 --- a/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName10.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsObjectBindingElementPropertyName10.baseline.jsonc @@ -1,343 +1,243 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === // interface Recursive { -// /*FIND ALL REFS*/[|next|]?: Recursive; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}next|]?: Recursive;|> // value: any; // } // -// function f ({ [|next|]: { [|next|]: x} }: Recursive) { +// function f (<|<|{ [|{| contextId: 1 |}next|]: { [|{| contextId: 2 |}next|]: x} }: Recursive|>|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "kind": "property", - "name": "(property) Recursive.next?: Recursive", - "textSpan": { - "start": 26, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "next", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 26, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 26, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 85, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === + // interface Recursive { + // /*FIND ALL REFS*/<|[|next|]?: Recursive;|> + // value: any; + // } + // + // function f ({ next: { next: x} }: Recursive) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Recursive.next?: Recursive", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "next", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === // interface Recursive { -// [|next|]?: Recursive; +// next?: Recursive; // value: any; // } // -// function f ({ /*FIND ALL REFS*/[|next|]: { [|next|]: x} }: Recursive) { +// function f (/*FIND ALL REFS*/{ next: { next: x} }: Recursive) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "kind": "property", - "name": "(property) Recursive.next?: Recursive", - "textSpan": { - "start": 26, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "next", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 26, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 26, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 85, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === +// interface Recursive { +// <|[|next|]?: Recursive;|> +// value: any; +// } +// +// function f (<|<|{ /*FIND ALL REFS*/[|{| contextId: 1 |}next|]: { [|{| contextId: 2 |}next|]: x} }: Recursive|>|>) { +// } + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === + // interface Recursive { + // <|[|next|]?: Recursive;|> + // value: any; + // } + // + // function f ({ /*FIND ALL REFS*/next: { next: x} }: Recursive) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Recursive.next?: Recursive", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "next", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === // interface Recursive { -// [|next|]?: Recursive; +// <|[|next|]?: Recursive;|> // value: any; // } // -// function f ({ [|next|]: { /*FIND ALL REFS*/[|next|]: x} }: Recursive) { +// function f (<|<|{ [|{| contextId: 1 |}next|]: { /*FIND ALL REFS*/[|{| contextId: 2 |}next|]: x} }: Recursive|>|>) { // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "kind": "property", - "name": "(property) Recursive.next?: Recursive", - "textSpan": { - "start": 26, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "next", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Recursive", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 26, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 26, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 85, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts", - "contextSpan": { - "start": 75, - "length": 31 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsObjectBindingElementPropertyName10.ts === + // interface Recursive { + // <|[|next|]?: Recursive;|> + // value: any; + // } + // + // function f ({ next: { /*FIND ALL REFS*/next: x} }: Recursive) { + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Recursive.next?: Recursive", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "next", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Recursive", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOfConstructor.baseline.jsonc b/tests/baselines/reference/findAllRefsOfConstructor.baseline.jsonc index debd5db19b124..52ca1cefe0c99 100644 --- a/tests/baselines/reference/findAllRefsOfConstructor.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOfConstructor.baseline.jsonc @@ -1,181 +1,120 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor.ts === // class A { -// /*FIND ALL REFS*/[|constructor|](s: string) {} +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|](s: string) {}|> // } // class B extends A { } // class C extends B { // constructor() { -// [|super|](""); +// [|{| defId: 1 |}super|](""); // } // } // class D extends B { } // class E implements A { } -// const a = new [|A|]("a"); -// const b = new [|B|]("b"); +// const a = new [|{| defId: 0 |}A|]("a"); +// const b = new [|{| defId: 1 |}B|]("b"); // const c = new C(); -// const d = new [|D|]("d"); +// const d = new [|{| defId: 2 |}D|]("d"); // const e = new E(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "contextSpan": { - "start": 14, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 192, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor.ts === + // <|class [|{| defId: 0 |}A|] { + // /*FIND ALL REFS*/constructor(s: string) {} + // }|> + // <|class [|{| defId: 1 |}B|] extends A { }|> + // class C extends B { + // constructor() { + // super(""); + // } + // } + // <|class [|{| defId: 2 |}D|] extends B { }|> + // class E implements A { } + // const a = new A("a"); + // const b = new B("b"); + // const c = new C(); + // const d = new D("d"); + // const e = new E(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 42, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 112, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 214, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "kind": "class", - "name": "class D", - "textSpan": { - "start": 137, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - } - ], - "contextSpan": { - "start": 131, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 255, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class D", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor.ts === // class A { // constructor(s: string) {} // } // class B extends A { } // class C extends B { -// /*FIND ALL REFS*/[|constructor|]() { +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|]() { // super(""); -// } +// }|> // } // class D extends B { } // class E implements A { } @@ -185,60 +124,45 @@ // const d = new D("d"); // const e = new E(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 64, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 88, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "contextSpan": { - "start": 88, - "length": 40 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 236, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor.ts === + // class A { + // constructor(s: string) {} + // } + // class B extends A { } + // <|class [|C|] extends B { + // /*FIND ALL REFS*/constructor() { + // super(""); + // } + // }|> + // class D extends B { } + // class E implements A { } + // const a = new A("a"); + // const b = new B("b"); + // const c = new C(); + // const d = new D("d"); + // const e = new E(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOfConstructor2.baseline.jsonc b/tests/baselines/reference/findAllRefsOfConstructor2.baseline.jsonc index 9dd251cf7272c..08f9ae9cc6536 100644 --- a/tests/baselines/reference/findAllRefsOfConstructor2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOfConstructor2.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === // class A { -// /*FIND ALL REFS*/[|constructor|](s: string) {} +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|](s: string) {}|> // } // class B extends A { // constructor() { [|super|](""); } @@ -16,200 +17,138 @@ // const c = new C(); // const d = new D(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "contextSpan": { - "start": 14, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 82, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 198, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === + // <|class [|A|] { + // /*FIND ALL REFS*/constructor(s: string) {} + // }|> + // class B extends A { + // constructor() { super(""); } + // } + // class C extends B { + // constructor() { + // super(); + // } + // } + // class D extends B { } + // const a = new A("a"); + // const b = new B(); + // const c = new C(); + // const d = new D(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === // class A { // constructor(s: string) {} // } // class B extends A { -// /*FIND ALL REFS*/[|constructor|]() { super(""); } +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|]() { super(""); }|> // } // class C extends B { // constructor() { -// [|super|](); +// [|{| defId: 0 |}super|](); // } // } // class D extends B { } // const a = new A("a"); -// const b = new [|B|](); +// const b = new [|{| defId: 0 |}B|](); // const c = new C(); -// const d = new [|D|](); +// const d = new [|{| defId: 1 |}D|](); + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === + // class A { + // constructor(s: string) {} + // } + // <|class [|{| defId: 0 |}B|] extends A { + // /*FIND ALL REFS*/constructor() { super(""); } + // }|> + // class C extends B { + // constructor() { + // super(); + // } + // } + // <|class [|{| defId: 1 |}D|] extends B { }|> + // const a = new A("a"); + // const b = new B(); + // const c = new C(); + // const d = new D(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 42, - "length": 54 - } - }, - "references": [ - { - "textSpan": { - "start": 66, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "contextSpan": { - "start": 66, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 145, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 220, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "kind": "class", - "name": "class D", - "textSpan": { - "start": 168, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - } - ], - "contextSpan": { - "start": 162, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 258, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class D", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === // class A { // constructor(s: string) {} @@ -218,9 +157,9 @@ // constructor() { super(""); } // } // class C extends B { -// /*FIND ALL REFS*/[|constructor|]() { +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}constructor|]() { // super(); -// } +// }|> // } // class D extends B { } // const a = new A("a"); @@ -228,60 +167,45 @@ // const c = new [|C|](); // const d = new D(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 103, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 97, - "length": 64 - } - }, - "references": [ - { - "textSpan": { - "start": 121, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "contextSpan": { - "start": 121, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 239, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor2.ts === + // class A { + // constructor(s: string) {} + // } + // class B extends A { + // constructor() { super(""); } + // } + // <|class [|C|] extends B { + // /*FIND ALL REFS*/constructor() { + // super(); + // } + // }|> + // class D extends B { } + // const a = new A("a"); + // const b = new B(); + // const c = new C(); + // const d = new D(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOfConstructor_multipleFiles.baseline.jsonc b/tests/baselines/reference/findAllRefsOfConstructor_multipleFiles.baseline.jsonc index 00716621ee9fe..46272a68a1506 100644 --- a/tests/baselines/reference/findAllRefsOfConstructor_multipleFiles.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOfConstructor_multipleFiles.baseline.jsonc @@ -1,577 +1,390 @@ -// === /tests/cases/fourslash/a.ts === -// import { [|A|] as A1 } from "./f"; -// const a1 = new [|A1|]("a1"); -// export default class extends A1 { } -// export { [|B|] as [|B1|] } from "./f"; - +// === findAllReferences === // === /tests/cases/fourslash/f.ts === // class A { -// /*FIND ALL REFS*/[|constructor|](s: string) {} +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|](s: string) {}|> // } // class B extends A { } -// export { [|A|], [|B|] }; +// <|<|export { [|{| contextId: 1, defId: 0, isWriteAccess: true |}A|], [|{| contextId: 2, defId: 1, isWriteAccess: true |}B|] };|>|> + +// === /tests/cases/fourslash/a.ts === +// <|import { [|{| defId: 5 |}A|] as A1 } from "./f";|> +// const a1 = new [|{| defId: 6 |}A1|]("a1"); +// export default class extends A1 { } +// <|<|export { [|{| contextId: 4, defId: 2 |}B|] as [|{| contextId: 5, defId: 3, isWriteAccess: true |}B1|] } from "./f";|>|> // === /tests/cases/fourslash/b.ts === // import B, { B1 } from "./a"; -// const d = new [|B|]("b"); -// const d1 = new [|B1|]("b1"); +// const d = new [|{| defId: 8 |}B|]("b"); +// const d1 = new [|{| defId: 4 |}B1|]("b1"); + + // === Definitions === + // === /tests/cases/fourslash/f.ts === + // <|class [|{| defId: 0 |}A|] { + // /*FIND ALL REFS*/constructor(s: string) {} + // }|> + // <|class [|{| defId: 1 |}B|] extends A { }|> + // <|<|export { [|{| defId: 5 |}A|], [|{| contextId: 2, defId: 2 |}B|] };|>|> + + // === /tests/cases/fourslash/a.ts === + // <|import { A as [|{| defId: 6 |}A1|] } from "./f";|> + // const a1 = new A1("a1"); + // [|{| defId: 7 |}export default class extends A1 { }|] + // <|export { B as [|{| defId: 3 |}B1|] } from "./f";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 14, - "length": 25 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 73, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 64, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === /tests/cases/fourslash/b.ts === + // <|<|import [|{| defId: 8 |}B|], { [|{| contextId: 6, defId: 4 |}B1|] } from "./a";|>|> + // const d = new B("b"); + // const d1 = new B1("b1"); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } + ] + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 42, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/f.ts", - "contextSpan": { - "start": 64, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nexport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "alias", - "name": "(alias) class B\nexport B", - "textSpan": { - "start": 76, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 64, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 92, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B1\nexport B1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B1", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B1", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "alias", - "name": "(alias) class B1\nexport B1", - "textSpan": { - "start": 106, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B1", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B1", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 92, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 106, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 92, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B1\nimport B1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B1", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B1", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class B1\nimport B1", - "textSpan": { - "start": 12, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B1", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B1", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 66, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A\nexport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/f.ts", - "kind": "alias", - "name": "(alias) class A\nexport A", - "textSpan": { - "start": 73, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 64, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A1\nimport A1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "alias", - "name": "(alias) class A1\nimport A1", - "textSpan": { - "start": 14, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 46, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class default", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class default", - "textSpan": { - "start": 56, - "length": 35 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "className" - } - ] - }, - "references": [] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "import B", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 8, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import B", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOfConstructor_withModifier.baseline.jsonc b/tests/baselines/reference/findAllRefsOfConstructor_withModifier.baseline.jsonc index 6a91b815fbb92..13d4994e204d9 100644 --- a/tests/baselines/reference/findAllRefsOfConstructor_withModifier.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOfConstructor_withModifier.baseline.jsonc @@ -1,63 +1,37 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOfConstructor_withModifier.ts === // class X { -// public /*FIND ALL REFS*/[|constructor|]() {} +// <|public /*FIND ALL REFS*/[|{| isDefinition: true |}constructor|]() {}|> // } // var x = new [|X|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor_withModifier.ts", - "kind": "class", - "name": "class X", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "X", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor_withModifier.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 52, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOfConstructor_withModifier.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOfConstructor_withModifier.ts === + // <|class [|X|] { + // public /*FIND ALL REFS*/constructor() {} + // }|> + // var x = new X(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class X", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnDecorators.baseline.jsonc b/tests/baselines/reference/findAllRefsOnDecorators.baseline.jsonc index 9415c9dd277c6..903030fef5638 100644 --- a/tests/baselines/reference/findAllRefsOnDecorators.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnDecorators.baseline.jsonc @@ -1,3 +1,10 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}decorator|](target) { +// return target; +// }|> +// [|decorator|](); + // === /tests/cases/fourslash/b.ts === // @[|decorator|] @[|decorator|]("again") // class C { @@ -5,133 +12,82 @@ // method() {} // } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // /*FIND ALL REFS*/<|function [|decorator|](target) { + // return target; + // }|> + // decorator(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// /*FIND ALL REFS*/function [|decorator|](target) { +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}decorator|](target) { // return target; -// } +// }|> // [|decorator|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/b.ts === // @[|decorator|] @[|decorator|]("again") // class C { @@ -139,132 +95,81 @@ // method() {} // } -// === /tests/cases/fourslash/a.ts === -// function /*FIND ALL REFS*/[|decorator|](target) { -// return target; -// } -// [|decorator|](); + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|function /*FIND ALL REFS*/[|decorator|](target) { + // return target; + // }|> + // decorator(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|function [|{| isWriteAccess: true |}decorator|](target) { +// return target; +// }|> +// /*FIND ALL REFS*/[|decorator|](); // === /tests/cases/fourslash/b.ts === // @[|decorator|] @[|decorator|]("again") @@ -273,127 +178,81 @@ // method() {} // } -// === /tests/cases/fourslash/a.ts === -// function [|decorator|](target) { -// return target; -// } -// /*FIND ALL REFS*/[|decorator|](); + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|function [|decorator|](target) { + // return target; + // }|> + // /*FIND ALL REFS*/decorator(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|function [|{| isWriteAccess: true |}decorator|](target) { +// return target; +// }|> +// [|decorator|](); // === /tests/cases/fourslash/b.ts === // @/*FIND ALL REFS*/[|decorator|] @[|decorator|]("again") @@ -402,128 +261,82 @@ // method() {} // } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|function [|decorator|](target) { + // return target; + // }|> + // decorator(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// function [|decorator|](target) { +// <|function [|{| isWriteAccess: true |}decorator|](target) { // return target; -// } +// }|> // [|decorator|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/b.ts === // @[|decorator|] @/*FIND ALL REFS*/[|decorator|]("again") // class C { @@ -531,128 +344,82 @@ // method() {} // } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|function [|decorator|](target) { + // return target; + // }|> + // decorator(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// function [|decorator|](target) { +// <|function [|{| isWriteAccess: true |}decorator|](target) { // return target; -// } +// }|> // [|decorator|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/b.ts === // @[|decorator|] @[|decorator|]("again") // class C { @@ -660,124 +427,69 @@ // method() {} // } -// === /tests/cases/fourslash/a.ts === -// function [|decorator|](target) { -// return target; -// } -// [|decorator|](); + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|function [|decorator|](target) { + // return target; + // }|> + // decorator(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function decorator(target: any): any", - "textSpan": { - "start": 9, - "length": 9 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decorator", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "target", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 46, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function decorator(target: any): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decorator", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "target", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnDefinition.baseline.jsonc b/tests/baselines/reference/findAllRefsOnDefinition.baseline.jsonc index 3d305e063063c..368110b749730 100644 --- a/tests/baselines/reference/findAllRefsOnDefinition.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnDefinition.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -5,9 +6,9 @@ // // } // -// /*FIND ALL REFS*/public [|start|](){ +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -21,100 +22,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // /*FIND ALL REFS*/<|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -122,9 +109,9 @@ // // } // -// public /*FIND ALL REFS*/[|start|](){ +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -138,100 +125,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public /*FIND ALL REFS*/[|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -239,9 +212,9 @@ // // } // -// public [|start|](){ +// <|public [|{| isWriteAccess: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -255,94 +228,79 @@ // second./*FIND ALL REFS*/[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnDefinition2.baseline.jsonc b/tests/baselines/reference/findAllRefsOnDefinition2.baseline.jsonc index 1bea664292901..8765998123c26 100644 --- a/tests/baselines/reference/findAllRefsOnDefinition2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnDefinition2.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === // export module Test{ // -// /*FIND ALL REFS*/export interface [|start|] { } +// /*FIND ALL REFS*/<|export interface [|{| isWriteAccess: true, isDefinition: true |}start|] { }|> // // export interface stop { } // } @@ -12,76 +13,54 @@ // var start: Second.Test.[|start|]; // var stop: Second.Test.stop; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "kind": "interface", - "name": "interface Test.start", - "textSpan": { - "start": 42, - "length": 5 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 25, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "contextSpan": { - "start": 25, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === + // export module Test{ + // + // /*FIND ALL REFS*/<|export interface [|start|] { }|> + // + // export interface stop { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Test.start", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === // export module Test{ // -// export interface /*FIND ALL REFS*/[|start|] { } +// <|export interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|] { }|> // // export interface stop { } // } @@ -92,76 +71,54 @@ // var start: Second.Test.[|start|]; // var stop: Second.Test.stop; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "kind": "interface", - "name": "interface Test.start", - "textSpan": { - "start": 42, - "length": 5 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 25, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "contextSpan": { - "start": 25, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === + // export module Test{ + // + // <|export interface /*FIND ALL REFS*/[|start|] { }|> + // + // export interface stop { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Test.start", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === // export module Test{ // -// export interface [|start|] { } +// <|export interface [|{| isWriteAccess: true |}start|] { }|> // // export interface stop { } // } @@ -172,66 +129,43 @@ // var start: Second.Test./*FIND ALL REFS*/[|start|]; // var stop: Second.Test.stop; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "kind": "interface", - "name": "interface Test.start", - "textSpan": { - "start": 42, - "length": 5 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 25, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2-import.ts", - "contextSpan": { - "start": 25, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 86, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnDefinition2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnDefinition2-import.ts === + // export module Test{ + // + // <|export interface [|start|] { }|> + // + // export interface stop { } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Test.start", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnImportAliases.baseline.jsonc b/tests/baselines/reference/findAllRefsOnImportAliases.baseline.jsonc index 7594b75a20888..dc6f4acf765af 100644 --- a/tests/baselines/reference/findAllRefsOnImportAliases.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnImportAliases.baseline.jsonc @@ -1,673 +1,474 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}Class|] { +// }|> + // === /tests/cases/fourslash/b.ts === -// import { [|Class|] } from "./a"; +// <|import { [|{| defId: 1, isWriteAccess: true |}Class|] } from "./a";|> // -// var c = new [|Class|](); +// var c = new [|{| defId: 1 |}Class|](); // === /tests/cases/fourslash/c.ts === -// export { [|Class|] } from "./a"; +// <|export { [|{| defId: 2, isWriteAccess: true |}Class|] } from "./a";|> -// === /tests/cases/fourslash/a.ts === -// export class /*FIND ALL REFS*/[|Class|] { -// } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class /*FIND ALL REFS*/[|{| defId: 0 |}Class|] { + // }|> + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}Class|] } from "./a";|> + // + // var c = new Class(); + + // === /tests/cases/fourslash/c.ts === + // <|export { [|{| defId: 2 |}Class|] } from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class Class\nimport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nimport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class Class\nexport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nexport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { /*FIND ALL REFS*/[|Class|] } from "./a"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}Class|] } from "./a";|> // -// var c = new [|Class|](); +// var c = new [|{| defId: 0 |}Class|](); + +// === /tests/cases/fourslash/a.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}Class|] { +// }|> // === /tests/cases/fourslash/c.ts === -// export { [|Class|] } from "./a"; +// <|export { [|{| defId: 2, isWriteAccess: true |}Class|] } from "./a";|> -// === /tests/cases/fourslash/a.ts === -// export class [|Class|] { -// } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}Class|] } from "./a";|> + // + // var c = new Class(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class Class\nimport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 1 |}Class|] { + // }|> + + // === /tests/cases/fourslash/c.ts === + // <|export { [|{| defId: 2 |}Class|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nimport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class Class\nexport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nexport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { [|Class|] } from "./a"; +// <|import { [|{| defId: 0, isWriteAccess: true |}Class|] } from "./a";|> // -// var c = new /*FIND ALL REFS*/[|Class|](); +// var c = new /*FIND ALL REFS*/[|{| defId: 0 |}Class|](); + +// === /tests/cases/fourslash/a.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}Class|] { +// }|> // === /tests/cases/fourslash/c.ts === -// export { [|Class|] } from "./a"; +// <|export { [|{| defId: 2, isWriteAccess: true |}Class|] } from "./a";|> -// === /tests/cases/fourslash/a.ts === -// export class [|Class|] { -// } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 0 |}Class|] } from "./a";|> + // + // var c = new /*FIND ALL REFS*/Class(); + + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 1 |}Class|] { + // }|> + + // === /tests/cases/fourslash/c.ts === + // <|export { [|{| defId: 2 |}Class|] } from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class Class\nimport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nimport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class Class\nexport Class", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class Class\nexport Class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnImportAliases2.baseline.jsonc b/tests/baselines/reference/findAllRefsOnImportAliases2.baseline.jsonc index c1fb955a11fd2..d693e26ea5c87 100644 --- a/tests/baselines/reference/findAllRefsOnImportAliases2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnImportAliases2.baseline.jsonc @@ -1,1007 +1,723 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}Class|] {}|> + // === /tests/cases/fourslash/b.ts === -// import { [|Class|] as [|C2|] } from "./a"; -// var c = new [|C2|](); +// <|<|import { [|{| contextId: 1, defId: 0 |}Class|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}C2|] } from "./a";|>|> +// var c = new [|{| defId: 1 |}C2|](); // === /tests/cases/fourslash/c.ts === -// export { [|Class|] as [|C3|] } from "./a"; +// <|<|export { [|{| contextId: 3, defId: 0 |}Class|] as [|{| contextId: 4, defId: 2, isWriteAccess: true |}C3|] } from "./a";|>|> -// === /tests/cases/fourslash/a.ts === -// export class /*FIND ALL REFS*/[|Class|] {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class /*FIND ALL REFS*/[|{| defId: 0 |}Class|] {}|> + + // === /tests/cases/fourslash/b.ts === + // <|import { Class as [|{| defId: 1 |}C2|] } from "./a";|> + // var c = new C2(); + + // === /tests/cases/fourslash/c.ts === + // <|export { Class as [|{| defId: 2 |}C3|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C2\nimport C2", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 47, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C2\nimport C2", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C3\nexport C3", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C3\nexport C3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export class [|{| defId: 0, isWriteAccess: true |}Class|] {}|> // === /tests/cases/fourslash/b.ts === -// import { /*FIND ALL REFS*/[|Class|] as [|C2|] } from "./a"; -// var c = new [|C2|](); +// <|<|import { /*FIND ALL REFS*/[|{| contextId: 1, defId: 0 |}Class|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}C2|] } from "./a";|>|> +// var c = new [|{| defId: 1 |}C2|](); // === /tests/cases/fourslash/c.ts === -// export { [|Class|] as [|C3|] } from "./a"; +// <|<|export { [|{| contextId: 3, defId: 0 |}Class|] as [|{| contextId: 4, defId: 2, isWriteAccess: true |}C3|] } from "./a";|>|> -// === /tests/cases/fourslash/a.ts === -// export class [|Class|] {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 0 |}Class|] {}|> + + // === /tests/cases/fourslash/b.ts === + // <|import { /*FIND ALL REFS*/Class as [|{| defId: 1 |}C2|] } from "./a";|> + // var c = new C2(); + + // === /tests/cases/fourslash/c.ts === + // <|export { Class as [|{| defId: 2 |}C3|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C2\nimport C2", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C2\nimport C2", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C3\nexport C3", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C3\nexport C3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export class [|{| defId: 0, isWriteAccess: true |}Class|] {}|> // === /tests/cases/fourslash/b.ts === -// import { [|Class|] as [|C2|] } from "./a"; -// var c = new [|C2|](); +// <|<|import { [|{| contextId: 1, defId: 0 |}Class|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}C2|] } from "./a";|>|> +// var c = new [|{| defId: 1 |}C2|](); // === /tests/cases/fourslash/c.ts === -// export { /*FIND ALL REFS*/[|Class|] as [|C3|] } from "./a"; +// <|<|export { /*FIND ALL REFS*/[|{| contextId: 3, defId: 0 |}Class|] as [|{| contextId: 4, defId: 2, isWriteAccess: true |}C3|] } from "./a";|>|> -// === /tests/cases/fourslash/a.ts === -// export class [|Class|] {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class Class", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Class", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export class [|{| defId: 0 |}Class|] {}|> + + // === /tests/cases/fourslash/b.ts === + // <|import { Class as [|{| defId: 1 |}C2|] } from "./a";|> + // var c = new C2(); + + // === /tests/cases/fourslash/c.ts === + // <|export { /*FIND ALL REFS*/Class as [|{| defId: 2 |}C3|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Class", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Class", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C2\nimport C2", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C2\nimport C2", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C3\nexport C3", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C3\nexport C3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { Class as /*FIND ALL REFS*/[|C2|] } from "./a"; +// <|import { Class as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}C2|] } from "./a";|> // var c = new [|C2|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C2\nimport C2", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { Class as /*FIND ALL REFS*/[|C2|] } from "./a";|> + // var c = new C2(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C2\nimport C2", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { Class as [|C2|] } from "./a"; +// <|import { Class as [|{| isWriteAccess: true |}C2|] } from "./a";|> // var c = new /*FIND ALL REFS*/[|C2|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class C2\nimport C2", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { Class as [|C2|] } from "./a";|> + // var c = new /*FIND ALL REFS*/C2(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C2\nimport C2", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/c.ts === -// export { Class as /*FIND ALL REFS*/[|C3|] } from "./a"; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) class C3\nexport C3", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export { Class as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}C3|] } from "./a";|> + + // === Definitions === + // === /tests/cases/fourslash/c.ts === + // <|export { Class as /*FIND ALL REFS*/[|C3|] } from "./a";|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C3\nexport C3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C3", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export class /*RENAME*/[|ClassRENAME|] {}|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|ClassRENAME|] as C2 } from "./a";|> +// var c = new C2(); + +// === /tests/cases/fourslash/c.ts === +// <|export { [|ClassRENAME|] as C3 } from "./a";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export class [|ClassRENAME|] {}|> + +// === /tests/cases/fourslash/b.ts === +// <|import { /*RENAME*/[|ClassRENAME|] as C2 } from "./a";|> +// var c = new C2(); + +// === /tests/cases/fourslash/c.ts === +// <|export { [|ClassRENAME|] as C3 } from "./a";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export class [|ClassRENAME|] {}|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|ClassRENAME|] as C2 } from "./a";|> +// var c = new C2(); + +// === /tests/cases/fourslash/c.ts === +// <|export { /*RENAME*/[|ClassRENAME|] as C3 } from "./a";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import { Class as /*RENAME*/[|C2RENAME|] } from "./a";|> +// var c = new [|C2RENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import { Class as [|C2RENAME|] } from "./a";|> +// var c = new /*RENAME*/[|C2RENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/c.ts === +// <|export { Class as /*RENAME*/[|C3RENAME|] } from "./a";|> \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsOnPrivateParameterProperty1.baseline.jsonc b/tests/baselines/reference/findAllRefsOnPrivateParameterProperty1.baseline.jsonc index aa821118d6ab5..db3225d5271cd 100644 --- a/tests/baselines/reference/findAllRefsOnPrivateParameterProperty1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsOnPrivateParameterProperty1.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === // class ABCD { -// constructor(private x: number, public y: number, /*FIND ALL REFS*/private [|z|]: number) { +// constructor(private x: number, public y: number, /*FIND ALL REFS*/<|private [|{| isWriteAccess: true, isDefinition: true |}z|]: number|>) { // } // // func() { @@ -8,95 +9,75 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "kind": "property", - "name": "(property) ABCD.z: number", - "textSpan": { - "start": 74, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ABCD", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "z", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "contextSpan": { - "start": 66, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === + // class ABCD { + // constructor(private x: number, public y: number, /*FIND ALL REFS*/<|private [|z|]: number|>) { + // } + // + // func() { + // return this.z; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) ABCD.z: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ABCD", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "z", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === // class ABCD { -// constructor(private x: number, public y: number, private /*FIND ALL REFS*/[|z|]: number) { +// constructor(private x: number, public y: number, <|private /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}z|]: number|>) { // } // // func() { @@ -104,95 +85,75 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "kind": "property", - "name": "(property) ABCD.z: number", - "textSpan": { - "start": 74, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ABCD", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "z", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "contextSpan": { - "start": 66, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === + // class ABCD { + // constructor(private x: number, public y: number, <|private /*FIND ALL REFS*/[|z|]: number|>) { + // } + // + // func() { + // return this.z; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) ABCD.z: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ABCD", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "z", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === // class ABCD { -// constructor(private x: number, public y: number, private [|z|]: number) { +// constructor(private x: number, public y: number, <|private [|{| isWriteAccess: true |}z|]: number|>) { // } // // func() { @@ -200,86 +161,65 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "kind": "property", - "name": "(property) ABCD.z: number", - "textSpan": { - "start": 74, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ABCD", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "z", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "contextSpan": { - "start": 66, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts === + // class ABCD { + // constructor(private x: number, public y: number, <|private [|z|]: number|>) { + // } + // + // func() { + // return this./*FIND ALL REFS*/z; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) ABCD.z: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ABCD", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "z", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration1.baseline.jsonc b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration1.baseline.jsonc index c203fa808a76d..185fe680a67af 100644 --- a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration1.baseline.jsonc @@ -1,155 +1,111 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts === // class Foo { -// constructor(private /*FIND ALL REFS*/[|privateParam|]: number) { -// let localPrivate = [|privateParam|]; -// this.[|privateParam|] += 10; +// constructor(<|private /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}privateParam|]: number|>) { +// let localPrivate = [|{| defId: 1 |}privateParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}privateParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts", - "kind": "property", - "name": "(property) Foo.privateParam: number", - "textSpan": { - "start": 36, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "privateParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts", - "contextSpan": { - "start": 28, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 114, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts === + // class Foo { + // constructor(<|<|private /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}privateParam|]|]: number|>|>) { + // let localPrivate = privateParam; + // this.privateParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.privateParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "privateParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts", - "kind": "parameter", - "name": "(parameter) privateParam: number", - "textSpan": { - "start": 36, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "privateParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration1.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) privateParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "privateParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration2.baseline.jsonc b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration2.baseline.jsonc index a2331fe3eeb10..fff13ddd64ed5 100644 --- a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration2.baseline.jsonc @@ -1,461 +1,339 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === // class Foo { -// constructor(public /*FIND ALL REFS*/[|publicParam|]: number) { -// let localPublic = [|publicParam|]; -// this.[|publicParam|] += 10; +// constructor(<|public /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}publicParam|]: number|>) { +// let localPublic = [|{| defId: 1 |}publicParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}publicParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "property", - "name": "(property) Foo.publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "publicParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "contextSpan": { - "start": 28, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 110, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === + // class Foo { + // constructor(<|<|public /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}publicParam|]|]: number|>|>) { + // let localPublic = publicParam; + // this.publicParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "publicParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "parameter", - "name": "(parameter) publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "publicParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "publicParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === // class Foo { -// constructor(public [|publicParam|]: number) { -// let localPublic = /*FIND ALL REFS*/[|publicParam|]; -// this.[|publicParam|] += 10; +// constructor(<|public [|{| defId: 0, isWriteAccess: true |}publicParam|]: number|>) { +// let localPublic = /*FIND ALL REFS*/[|{| defId: 1 |}publicParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}publicParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "property", - "name": "(property) Foo.publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "publicParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "contextSpan": { - "start": 28, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 110, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === + // class Foo { + // constructor(<|<|public [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}publicParam|]|]: number|>|>) { + // let localPublic = /*FIND ALL REFS*/publicParam; + // this.publicParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "publicParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "parameter", - "name": "(parameter) publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "publicParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "publicParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === // class Foo { -// constructor(public [|publicParam|]: number) { -// let localPublic = [|publicParam|]; -// this./*FIND ALL REFS*/[|publicParam|] += 10; +// constructor(<|public [|{| defId: 0, isWriteAccess: true |}publicParam|]: number|>) { +// let localPublic = [|{| defId: 1 |}publicParam|]; +// this./*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true |}publicParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "property", - "name": "(property) Foo.publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "publicParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "contextSpan": { - "start": 28, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 110, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts === + // class Foo { + // constructor(<|<|public [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}publicParam|]|]: number|>|>) { + // let localPublic = publicParam; + // this./*FIND ALL REFS*/publicParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "publicParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "kind": "parameter", - "name": "(parameter) publicParam: number", - "textSpan": { - "start": 35, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "publicParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration2.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) publicParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "publicParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration3.baseline.jsonc b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration3.baseline.jsonc index f67bde89d4c88..8b89a011e829d 100644 --- a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration3.baseline.jsonc @@ -1,461 +1,339 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === // class Foo { -// constructor(protected /*FIND ALL REFS*/[|protectedParam|]: number) { -// let localProtected = [|protectedParam|]; -// this.[|protectedParam|] += 10; +// constructor(<|protected /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}protectedParam|]: number|>) { +// let localProtected = [|{| defId: 1 |}protectedParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}protectedParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "property", - "name": "(property) Foo.protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "protectedParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "contextSpan": { - "start": 28, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === + // class Foo { + // constructor(<|<|protected /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}protectedParam|]|]: number|>|>) { + // let localProtected = protectedParam; + // this.protectedParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "protectedParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "parameter", - "name": "(parameter) protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "protectedParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "protectedParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === // class Foo { -// constructor(protected [|protectedParam|]: number) { -// let localProtected = /*FIND ALL REFS*/[|protectedParam|]; -// this.[|protectedParam|] += 10; +// constructor(<|protected [|{| defId: 0, isWriteAccess: true |}protectedParam|]: number|>) { +// let localProtected = /*FIND ALL REFS*/[|{| defId: 1 |}protectedParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}protectedParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "property", - "name": "(property) Foo.protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "protectedParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "contextSpan": { - "start": 28, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 122, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === + // class Foo { + // constructor(<|<|protected [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}protectedParam|]|]: number|>|>) { + // let localProtected = /*FIND ALL REFS*/protectedParam; + // this.protectedParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "protectedParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "parameter", - "name": "(parameter) protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "protectedParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "protectedParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === // class Foo { -// constructor(protected [|protectedParam|]: number) { -// let localProtected = [|protectedParam|]; -// this./*FIND ALL REFS*/[|protectedParam|] += 10; +// constructor(<|protected [|{| defId: 0, isWriteAccess: true |}protectedParam|]: number|>) { +// let localProtected = [|{| defId: 1 |}protectedParam|]; +// this./*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true |}protectedParam|] += 10; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "property", - "name": "(property) Foo.protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "protectedParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "contextSpan": { - "start": 28, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 122, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts === + // class Foo { + // constructor(<|<|protected [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}protectedParam|]|]: number|>|>) { + // let localProtected = protectedParam; + // this./*FIND ALL REFS*/protectedParam += 10; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "protectedParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "kind": "parameter", - "name": "(parameter) protectedParam: number", - "textSpan": { - "start": 38, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "protectedParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration3.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) protectedParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "protectedParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration_inheritance.baseline.jsonc b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration_inheritance.baseline.jsonc index 4f6cd4e1f725f..6075fe268c30d 100644 --- a/tests/baselines/reference/findAllRefsParameterPropertyDeclaration_inheritance.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsParameterPropertyDeclaration_inheritance.baseline.jsonc @@ -1,241 +1,179 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === // class C { -// constructor(public /*FIND ALL REFS*/[|x|]: string) { -// [|x|]; +// constructor(<|public /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|]: string|>) { +// [|{| defId: 1 |}x|]; // } // } // class D extends C { -// constructor(public [|x|]: string) { -// super([|x|]); +// constructor(<|public [|{| defId: 2, isWriteAccess: true |}x|]: string|>) { +// super([|{| defId: 2 |}x|]); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) C.x: string", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 23, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === + // class C { + // constructor(<|<|public /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}x|]|]: string|>|>) { + // x; + // } + // } + // class D extends C { + // constructor(<|public [|{| defId: 2 |}x|]: string|>) { + // super(x); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "parameter", - "name": "(parameter) x: string", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) D.x: string", - "textSpan": { - "start": 93, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 86, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === // class C { -// constructor(public [|x|]: string) { -// /*FIND ALL REFS*/[|x|]; +// constructor(<|public [|{| defId: 0, isWriteAccess: true |}x|]: string|>) { +// /*FIND ALL REFS*/[|{| defId: 1 |}x|]; // } // } // class D extends C { @@ -244,377 +182,287 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) C.x: string", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 23, - "length": 16 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === + // class C { + // constructor(<|<|public [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}x|]|]: string|>|>) { + // /*FIND ALL REFS*/x; + // } + // } + // class D extends C { + // constructor(public x: string) { + // super(x); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "parameter", - "name": "(parameter) x: string", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === // class C { -// constructor(public [|x|]: string) { -// [|x|]; +// constructor(<|public [|{| defId: 0, isWriteAccess: true |}x|]: string|>) { +// [|{| defId: 0 |}x|]; // } // } // class D extends C { -// constructor(public /*FIND ALL REFS*/[|x|]: string) { -// super([|x|]); +// constructor(<|public /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}x|]: string|>) { +// super([|{| defId: 2 |}x|]); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) C.x: string", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 23, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === + // class C { + // constructor(<|public [|{| defId: 0 |}x|]: string|>) { + // x; + // } + // } + // class D extends C { + // constructor(<|<|public /*FIND ALL REFS*/[|{| contextId: 1, defId: 1 |}[|{| contextId: 2, defId: 2 |}x|]|]: string|>|>) { + // super(x); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) D.x: string", - "textSpan": { - "start": 93, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 86, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "parameter", - "name": "(parameter) x: string", - "textSpan": { - "start": 93, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === // class C { // constructor(public x: string) { @@ -622,144 +470,114 @@ // } // } // class D extends C { -// constructor(public [|x|]: string) { -// super(/*FIND ALL REFS*/[|x|]); +// constructor(<|public [|{| defId: 0, isWriteAccess: true |}x|]: string|>) { +// super(/*FIND ALL REFS*/[|{| defId: 1 |}x|]); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "property", - "name": "(property) D.x: string", - "textSpan": { - "start": 93, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "contextSpan": { - "start": 86, - "length": 16 - }, - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts === + // class C { + // constructor(public x: string) { + // x; + // } + // } + // class D extends C { + // constructor(<|<|public [|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}x|]|]: string|>|>) { + // super(/*FIND ALL REFS*/x); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "kind": "parameter", - "name": "(parameter) x: string", - "textSpan": { - "start": 93, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsParameterPropertyDeclaration_inheritance.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrefixSuffixPreference.baseline.jsonc b/tests/baselines/reference/findAllRefsPrefixSuffixPreference.baseline.jsonc index cfd2d61d2e117..97e03bdbc7d41 100644 --- a/tests/baselines/reference/findAllRefsPrefixSuffixPreference.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrefixSuffixPreference.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /file1.ts === // declare function log(s: string | number): void; -// const /*FIND ALL REFS*/[|q|] = 1; -// export { [|q|] }; +// <|const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}q|] = 1;|> +// <|export { [|{| defId: 0, isWriteAccess: true |}q|] };|> // const x = { // z: 'value' // } @@ -10,186 +11,134 @@ // === /file2.ts === // declare function log(s: string | number): void; -// import { [|q|] } from "./file1"; -// log([|q|] + 1); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const q: 1", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 48, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 48, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 61, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } +// <|import { [|{| defId: 1, isWriteAccess: true |}q|] } from "./file1";|> +// log([|{| defId: 1 |}q|] + 1); + + // === Definitions === + // === /file1.ts === + // declare function log(s: string | number): void; + // <|const /*FIND ALL REFS*/[|{| defId: 0 |}q|] = 1;|> + // export { q }; + // const x = { + // z: 'value' + // } + // const { z } = x; + // log(z); + + // === /file2.ts === + // declare function log(s: string | number): void; + // <|import { [|{| defId: 1 |}q|] } from "./file1";|> + // log(q + 1); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const q: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file2.ts", - "kind": "alias", - "name": "(alias) const q: 1\nimport q", - "textSpan": { - "start": 57, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 48, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 1 - }, - "fileName": "/file2.ts", - "contextSpan": { - "start": 48, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 81, - "length": 1 - }, - "fileName": "/file2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const q: 1\nimport q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /file1.ts === // declare function log(s: string | number): void; -// const [|q|] = 1; -// export { /*FIND ALL REFS*/[|q|] }; +// <|const [|{| defId: 0, isWriteAccess: true |}q|] = 1;|> +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}q|] };|> // const x = { // z: 'value' // } @@ -198,792 +147,572 @@ // === /file2.ts === // declare function log(s: string | number): void; -// import { [|q|] } from "./file1"; -// log([|q|] + 1); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const q: 1", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 48, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 48, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 61, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|import { [|{| defId: 1, isWriteAccess: true |}q|] } from "./file1";|> +// log([|{| defId: 1 |}q|] + 1); + + // === Definitions === + // === /file1.ts === + // declare function log(s: string | number): void; + // <|const [|{| defId: 0 |}q|] = 1;|> + // export { /*FIND ALL REFS*/q }; + // const x = { + // z: 'value' + // } + // const { z } = x; + // log(z); + + // === /file2.ts === + // declare function log(s: string | number): void; + // <|import { [|{| defId: 1 |}q|] } from "./file1";|> + // log(q + 1); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const q: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file2.ts", - "kind": "alias", - "name": "(alias) const q: 1\nimport q", - "textSpan": { - "start": 57, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 48, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 1 - }, - "fileName": "/file2.ts", - "contextSpan": { - "start": 48, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 81, - "length": 1 - }, - "fileName": "/file2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const q: 1\nimport q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}q|] } from "./file1";|> +// log([|{| defId: 0 |}q|] + 1); // === /file1.ts === // declare function log(s: string | number): void; -// const [|q|] = 1; -// export { [|q|] }; +// <|const [|{| defId: 1, isWriteAccess: true |}q|] = 1;|> +// <|export { [|{| defId: 1, isWriteAccess: true |}q|] };|> // const x = { // z: 'value' // } // const { z } = x; // log(z); -// === /file2.ts === -// declare function log(s: string | number): void; -// import { /*FIND ALL REFS*/[|q|] } from "./file1"; -// log([|q|] + 1); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file2.ts", - "kind": "alias", - "name": "(alias) const q: 1\nimport q", - "textSpan": { - "start": 57, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 48, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 1 - }, - "fileName": "/file2.ts", - "contextSpan": { - "start": 48, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 81, - "length": 1 - }, - "fileName": "/file2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /file2.ts === + // declare function log(s: string | number): void; + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}q|] } from "./file1";|> + // log(q + 1); + + // === /file1.ts === + // declare function log(s: string | number): void; + // <|const [|{| defId: 1 |}q|] = 1;|> + // export { q }; + // const x = { + // z: 'value' + // } + // const { z } = x; + // log(z); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const q: 1\nimport q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const q: 1", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 48, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 48, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 61, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const q: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { [|{| defId: 0, isWriteAccess: true |}q|] } from "./file1";|> +// log(/*FIND ALL REFS*/[|{| defId: 0 |}q|] + 1); // === /file1.ts === // declare function log(s: string | number): void; -// const [|q|] = 1; -// export { [|q|] }; +// <|const [|{| defId: 1, isWriteAccess: true |}q|] = 1;|> +// <|export { [|{| defId: 1, isWriteAccess: true |}q|] };|> // const x = { // z: 'value' // } // const { z } = x; // log(z); -// === /file2.ts === -// declare function log(s: string | number): void; -// import { [|q|] } from "./file1"; -// log(/*FIND ALL REFS*/[|q|] + 1); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file2.ts", - "kind": "alias", - "name": "(alias) const q: 1\nimport q", - "textSpan": { - "start": 57, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 48, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 1 - }, - "fileName": "/file2.ts", - "contextSpan": { - "start": 48, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 81, - "length": 1 - }, - "fileName": "/file2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /file2.ts === + // declare function log(s: string | number): void; + // <|import { [|{| defId: 0 |}q|] } from "./file1";|> + // log(/*FIND ALL REFS*/q + 1); + + // === /file1.ts === + // declare function log(s: string | number): void; + // <|const [|{| defId: 1 |}q|] = 1;|> + // export { q }; + // const x = { + // z: 'value' + // } + // const { z } = x; + // log(z); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const q: 1\nimport q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const q: 1", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "q", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 48, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 48, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 61, - "length": 13 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const q: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "q", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /file1.ts === // declare function log(s: string | number): void; // const q = 1; // export { q }; // const x = { -// /*FIND ALL REFS*/[|z|]: 'value' +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}z|]: 'value'|> // } -// const { [|z|] } = x; +// <|const { [|{| isWriteAccess: true |}z|] } = x;|> // log(z); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "property", - "name": "(property) z: string", - "textSpan": { - "start": 91, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 91, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 91, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 91, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 112, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 104, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /file1.ts === + // declare function log(s: string | number): void; + // const q = 1; + // export { q }; + // const x = { + // /*FIND ALL REFS*/<|[|z|]: 'value'|> + // } + // const { z } = x; + // log(z); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) z: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /file1.ts === // declare function log(s: string | number): void; // const q = 1; // export { q }; // const x = { -// [|z|]: 'value' +// <|[|{| defId: 0, isWriteAccess: true |}z|]: 'value'|> // } -// const { /*FIND ALL REFS*/[|z|] } = x; -// log([|z|]); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "property", - "name": "(property) z: string", - "textSpan": { - "start": 91, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 91, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 91, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 91, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - } +// <|const { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}z|] } = x;|> +// log([|{| defId: 1 |}z|]); + + // === Definitions === + // === /file1.ts === + // declare function log(s: string | number): void; + // const q = 1; + // export { q }; + // const x = { + // <|[|{| defId: 0 |}z|]: 'value'|> + // } + // <|const { /*FIND ALL REFS*/[|{| defId: 1 |}z|] } = x;|> + // log(z); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) z: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const z: string", - "textSpan": { - "start": 112, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 104, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 112, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 104, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 125, - "length": 1 - }, - "fileName": "/file1.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const z: string", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /file1.ts === // declare function log(s: string | number): void; // const q = 1; @@ -991,73 +720,277 @@ // const x = { // z: 'value' // } -// const { [|z|] } = x; +// <|const { [|{| isWriteAccess: true |}z|] } = x;|> // log(/*FIND ALL REFS*/[|z|]); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/file1.ts", - "kind": "const", - "name": "const z: string", - "textSpan": { - "start": 112, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 104, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 112, - "length": 1 - }, - "fileName": "/file1.ts", - "contextSpan": { - "start": 104, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 125, - "length": 1 - }, - "fileName": "/file1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /file1.ts === + // declare function log(s: string | number): void; + // const q = 1; + // export { q }; + // const x = { + // z: 'value' + // } + // <|const { [|z|] } = x;|> + // log(/*FIND ALL REFS*/z); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const z: string", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file1.ts === +// declare function log(s: string | number): void; +// <|const /*RENAME*/[|qRENAME|] = 1;|> +// <|export { [|qRENAME|] as q/*END SUFFIX*/ };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// <|export { /*START PREFIX*/q as /*RENAME*/[|qRENAME|] };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { [|qRENAME|] } from "./file1";|> +// log([|qRENAME|] + 1); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { /*START PREFIX*/q as /*RENAME*/[|qRENAME|] } from "./file1";|> +// log([|qRENAME|] + 1); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { /*START PREFIX*/q as [|qRENAME|] } from "./file1";|> +// log(/*RENAME*/[|qRENAME|] + 1); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file1.ts === +// declare function log(s: string | number): void; +// <|const /*RENAME*/[|qRENAME|] = 1;|> +// <|export { [|qRENAME|] };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { [|qRENAME|] } from "./file1";|> +// log([|qRENAME|] + 1); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file1.ts === +// declare function log(s: string | number): void; +// <|const [|qRENAME|] = 1;|> +// <|export { /*RENAME*/[|qRENAME|] };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { [|qRENAME|] } from "./file1";|> +// log([|qRENAME|] + 1); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { /*RENAME*/[|qRENAME|] } from "./file1";|> +// log([|qRENAME|] + 1); + +// === /file1.ts === +// declare function log(s: string | number): void; +// <|const [|qRENAME|] = 1;|> +// <|export { [|qRENAME|] };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file2.ts === +// declare function log(s: string | number): void; +// <|import { [|qRENAME|] } from "./file1";|> +// log(/*RENAME*/[|qRENAME|] + 1); + +// === /file1.ts === +// declare function log(s: string | number): void; +// <|const [|qRENAME|] = 1;|> +// <|export { [|qRENAME|] };|> +// const x = { +// z: 'value' +// } +// const { z } = x; +// log(z); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// /*RENAME*/<|[|zRENAME|]: 'value'|> +// } +// <|const { [|zRENAME|]: z/*END SUFFIX*/ } = x;|> +// log(z); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// z: 'value' +// } +// <|const { /*START PREFIX*/z: /*RENAME*/[|zRENAME|] } = x;|> +// log([|zRENAME|]); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// z: 'value' +// } +// <|const { /*START PREFIX*/z: [|zRENAME|] } = x;|> +// log(/*RENAME*/[|zRENAME|]); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// /*RENAME*/<|[|zRENAME|]: 'value'|> +// } +// <|const { [|zRENAME|] } = x;|> +// log([|zRENAME|]); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// <|[|zRENAME|]: 'value'|> +// } +// <|const { /*RENAME*/[|zRENAME|] } = x;|> +// log([|zRENAME|]); + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /file1.ts === +// declare function log(s: string | number): void; +// const q = 1; +// export { q }; +// const x = { +// <|[|zRENAME|]: 'value'|> +// } +// <|const { [|zRENAME|] } = x;|> +// log(/*RENAME*/[|zRENAME|]); \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrimitive.baseline.jsonc b/tests/baselines/reference/findAllRefsPrimitive.baseline.jsonc index 8538ff381844c..5e4dcf15b44fe 100644 --- a/tests/baselines/reference/findAllRefsPrimitive.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrimitive.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: /*FIND ALL REFS*/[|any|] = 0; // const any = 2; @@ -13,54 +14,38 @@ // === /tests/cases/fourslash/b.ts === // const z: [|any|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 42, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: /*FIND ALL REFS*/[|any|] = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "any", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: [|any|] = 0; // const any = 2; @@ -76,54 +61,38 @@ // === /tests/cases/fourslash/b.ts === // const z: [|any|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 42, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: [|any|] = 0; + // const any = 2; + // const y: /*FIND ALL REFS*/any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "any", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -136,46 +105,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "boolean", - "textSpan": { - "start": 67, - "length": 7 - }, - "displayParts": [ - { - "text": "boolean", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 77, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: /*FIND ALL REFS*/[|boolean|]): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "boolean", + "displayParts": [ + { + "text": "boolean", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -188,46 +149,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "boolean", - "textSpan": { - "start": 67, - "length": 7 - }, - "displayParts": [ - { - "text": "boolean", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 77, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: [|boolean|]): /*FIND ALL REFS*/boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "boolean", + "displayParts": [ + { + "text": "boolean", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -240,46 +193,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "never", - "textSpan": { - "start": 95, - "length": 5 - }, - "displayParts": [ - { - "text": "never", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 111, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = /*FIND ALL REFS*/[|never|]; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "never", + "displayParts": [ + { + "text": "never", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -292,46 +237,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "never", - "textSpan": { - "start": 95, - "length": 5 - }, - "displayParts": [ - { - "text": "never", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 95, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 111, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = [|never|]; type U = /*FIND ALL REFS*/never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "never", + "displayParts": [ + { + "text": "never", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -344,46 +281,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 132, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 132, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: /*FIND ALL REFS*/[|number|]): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -396,46 +325,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 132, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 132, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: [|number|]): /*FIND ALL REFS*/number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -448,46 +369,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "object", - "textSpan": { - "start": 163, - "length": 6 - }, - "displayParts": [ - { - "text": "object", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 163, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 172, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: /*FIND ALL REFS*/[|object|]): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "object", + "displayParts": [ + { + "text": "object", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -500,46 +413,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "object", - "textSpan": { - "start": 163, - "length": 6 - }, - "displayParts": [ - { - "text": "object", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 163, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 172, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: [|object|]): /*FIND ALL REFS*/object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "object", + "displayParts": [ + { + "text": "object", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -552,46 +457,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "string", - "textSpan": { - "start": 194, - "length": 6 - }, - "displayParts": [ - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 194, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 203, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: /*FIND ALL REFS*/[|string|]): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "string", + "displayParts": [ + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -604,46 +501,38 @@ // function sy(s: symbol): symbol; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "string", - "textSpan": { - "start": 194, - "length": 6 - }, - "displayParts": [ - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 194, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 203, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: [|string|]): /*FIND ALL REFS*/string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "string", + "displayParts": [ + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -656,46 +545,38 @@ // function sy(s: /*FIND ALL REFS*/[|symbol|]): [|symbol|]; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "symbol", - "textSpan": { - "start": 226, - "length": 6 - }, - "displayParts": [ - { - "text": "symbol", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 226, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 235, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: /*FIND ALL REFS*/[|symbol|]): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "symbol", + "displayParts": [ + { + "text": "symbol", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -708,46 +589,38 @@ // function sy(s: [|symbol|]): /*FIND ALL REFS*/[|symbol|]; // function v(v: void): void; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "symbol", - "textSpan": { - "start": 226, - "length": 6 - }, - "displayParts": [ - { - "text": "symbol", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 226, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 235, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: [|symbol|]): /*FIND ALL REFS*/symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "symbol", + "displayParts": [ + { + "text": "symbol", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -760,46 +633,38 @@ // function sy(s: symbol): symbol; // function v(v: /*FIND ALL REFS*/[|void|]): [|void|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "void", - "textSpan": { - "start": 257, - "length": 4 - }, - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 257, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 264, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: /*FIND ALL REFS*/[|void|]): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "void", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: any = 0; // const any = 2; @@ -812,46 +677,38 @@ // function sy(s: symbol): symbol; // function v(v: [|void|]): /*FIND ALL REFS*/[|void|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "void", - "textSpan": { - "start": 257, - "length": 4 - }, - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 257, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 264, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: any = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: [|void|]): /*FIND ALL REFS*/void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "void", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === // const x: [|any|] = 0; // const any = 2; @@ -867,50 +724,363 @@ // === /tests/cases/fourslash/b.ts === // const z: /*FIND ALL REFS*/[|any|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "keyword", - "name": "any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 42, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // const x: [|any|] = 0; + // const any = 2; + // const y: any = any; + // function f(b: boolean): boolean; + // type T = never; type U = never; + // function n(x: number): number; + // function o(x: object): object; + // function s(x: string): string; + // function sy(s: symbol): symbol; + // function v(v: void): void; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "any", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: /*HIGHLIGHTS*/[|{| kind: "reference" |}any|] = 0; +// const any = 2; +// const y: [|{| kind: "reference" |}any|] = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + +// === /tests/cases/fourslash/b.ts === +// const z: [|{| kind: "reference" |}any|] = 0; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: [|{| kind: "reference" |}any|] = 0; +// const any = 2; +// const y: /*HIGHLIGHTS*/[|{| kind: "reference" |}any|] = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + +// === /tests/cases/fourslash/b.ts === +// const z: [|{| kind: "reference" |}any|] = 0; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: /*HIGHLIGHTS*/[|{| kind: "reference" |}boolean|]): [|{| kind: "reference" |}boolean|]; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: [|{| kind: "reference" |}boolean|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}boolean|]; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = /*HIGHLIGHTS*/[|{| kind: "reference" |}never|]; type U = [|{| kind: "reference" |}never|]; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = [|{| kind: "reference" |}never|]; type U = /*HIGHLIGHTS*/[|{| kind: "reference" |}never|]; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: /*HIGHLIGHTS*/[|{| kind: "reference" |}number|]): [|{| kind: "reference" |}number|]; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: [|{| kind: "reference" |}number|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}number|]; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: /*HIGHLIGHTS*/[|{| kind: "reference" |}object|]): [|{| kind: "reference" |}object|]; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: [|{| kind: "reference" |}object|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}object|]; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: /*HIGHLIGHTS*/[|{| kind: "reference" |}string|]): [|{| kind: "reference" |}string|]; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: [|{| kind: "reference" |}string|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}string|]; +// function sy(s: symbol): symbol; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: /*HIGHLIGHTS*/[|{| kind: "reference" |}symbol|]): [|{| kind: "reference" |}symbol|]; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: [|{| kind: "reference" |}symbol|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}symbol|]; +// function v(v: void): void; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: /*HIGHLIGHTS*/[|{| kind: "reference" |}void|]): [|{| kind: "reference" |}void|]; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: any = 0; +// const any = 2; +// const y: any = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: [|{| kind: "reference" |}void|]): /*HIGHLIGHTS*/[|{| kind: "reference" |}void|]; + + + +// === documentHighlights === +// filesToSearch: +// a.ts +// b.ts + +// === /tests/cases/fourslash/a.ts === +// const x: [|{| kind: "reference" |}any|] = 0; +// const any = 2; +// const y: [|{| kind: "reference" |}any|] = any; +// function f(b: boolean): boolean; +// type T = never; type U = never; +// function n(x: number): number; +// function o(x: object): object; +// function s(x: string): string; +// function sy(s: symbol): symbol; +// function v(v: void): void; + +// === /tests/cases/fourslash/b.ts === +// const z: /*HIGHLIGHTS*/[|{| kind: "reference" |}any|] = 0; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrimitiveJsDoc.baseline.jsonc b/tests/baselines/reference/findAllRefsPrimitiveJsDoc.baseline.jsonc index fdc17d3c2ad03..b26706b80f1b3 100644 --- a/tests/baselines/reference/findAllRefsPrimitiveJsDoc.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrimitiveJsDoc.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === // /** // * @param {/*FIND ALL REFS*/[|number|]} n @@ -5,62 +6,33 @@ // */ // function f(n: [|number|]): [|number|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 15, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === + // /** + // * @param {/*FIND ALL REFS*/[|number|]} n + // * @returns {number} + // */ + // function f(n: number): number {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === // /** // * @param {[|number|]} n @@ -68,62 +40,33 @@ // */ // function f(n: [|number|]): [|number|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 15, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === + // /** + // * @param {[|number|]} n + // * @returns {/*FIND ALL REFS*/number} + // */ + // function f(n: number): number {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === // /** // * @param {[|number|]} n @@ -131,62 +74,33 @@ // */ // function f(n: /*FIND ALL REFS*/[|number|]): [|number|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 15, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === + // /** + // * @param {[|number|]} n + // * @returns {number} + // */ + // function f(n: /*FIND ALL REFS*/number): number {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === // /** // * @param {[|number|]} n @@ -194,58 +108,26 @@ // */ // function f(n: [|number|]): /*FIND ALL REFS*/[|number|] {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "kind": "keyword", - "name": "number", - "textSpan": { - "start": 15, - "length": 6 - }, - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrimitiveJsDoc.ts === + // /** + // * @param {[|number|]} n + // * @returns {number} + // */ + // function f(n: number): /*FIND ALL REFS*/number {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "keyword", + "name": "number", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrivateNameAccessors.baseline.jsonc b/tests/baselines/reference/findAllRefsPrivateNameAccessors.baseline.jsonc index 0a11e35bd247c..00feffaa53780 100644 --- a/tests/baselines/reference/findAllRefsPrivateNameAccessors.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrivateNameAccessors.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { -// /*FIND ALL REFS*/get [|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// /*FIND ALL REFS*/<|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } @@ -20,109 +21,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 18, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 42, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // /*FIND ALL REFS*/<|get [|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { -// get /*FIND ALL REFS*/[|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// <|get /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } @@ -141,109 +121,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 18, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 42, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // <|get /*FIND ALL REFS*/[|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { -// get [|#foo|](){ return 1; } -// /*FIND ALL REFS*/set [|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// /*FIND ALL REFS*/<|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } @@ -262,109 +221,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 18, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 42, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // <|get [|#foo|](){ return 1; }|> + // /*FIND ALL REFS*/set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { -// get [|#foo|](){ return 1; } -// set /*FIND ALL REFS*/[|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } @@ -383,109 +321,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 18, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 42, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // <|get [|#foo|](){ return 1; }|> + // set /*FIND ALL REFS*/#foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { -// get [|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true |}#foo|](value: number){ }|> // constructor() { // this./*FIND ALL REFS*/[|#foo|](); // } @@ -504,102 +421,84 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 18, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 14, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 42, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 103, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // <|get [|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this./*FIND ALL REFS*/#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { // get #foo(){ return 1; } @@ -615,112 +514,91 @@ // } // } // class E { -// /*FIND ALL REFS*/get [|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// /*FIND ALL REFS*/<|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 225, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 221, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 221, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 253, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 249, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 310, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // /*FIND ALL REFS*/<|get [|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { // get #foo(){ return 1; } @@ -736,112 +614,91 @@ // } // } // class E { -// get /*FIND ALL REFS*/[|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// <|get /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 225, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 221, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 221, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 253, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 249, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 310, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|get /*FIND ALL REFS*/[|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { // get #foo(){ return 1; } @@ -857,112 +714,91 @@ // } // } // class E { -// get [|#foo|](){ return 1; } -// /*FIND ALL REFS*/set [|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// /*FIND ALL REFS*/<|set [|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 225, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 221, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 221, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 253, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 249, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 310, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|get [|#foo|](){ return 1; }|> + // /*FIND ALL REFS*/set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { // get #foo(){ return 1; } @@ -978,112 +814,91 @@ // } // } // class E { -// get [|#foo|](){ return 1; } -// set /*FIND ALL REFS*/[|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true, isDefinition: true |}#foo|](){ return 1; }|> +// <|set /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}#foo|](value: number){ }|> // constructor() { // this.[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 225, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 221, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 221, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 253, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 249, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 310, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|get [|#foo|](){ return 1; }|> + // set /*FIND ALL REFS*/#foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === // class C { // get #foo(){ return 1; } @@ -1099,105 +914,84 @@ // } // } // class E { -// get [|#foo|](){ return 1; } -// set [|#foo|](value: number){ } +// <|get [|{| isWriteAccess: true |}#foo|](){ return 1; }|> +// <|set [|{| isWriteAccess: true |}#foo|](value: number){ }|> // constructor() { // this./*FIND ALL REFS*/[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 225, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 221, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 221, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 253, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "contextSpan": { - "start": 249, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 310, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameAccessors.ts === + // class C { + // get #foo(){ return 1; } + // set #foo(value: number){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|get [|#foo|](){ return 1; }|> + // set #foo(value: number){ } + // constructor() { + // this./*FIND ALL REFS*/#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrivateNameMethods.baseline.jsonc b/tests/baselines/reference/findAllRefsPrivateNameMethods.baseline.jsonc index 27f5722b5ed80..6c3c499cc49c3 100644 --- a/tests/baselines/reference/findAllRefsPrivateNameMethods.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrivateNameMethods.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === // class C { -// /*FIND ALL REFS*/[|#foo|](){ } +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}#foo|](){ }|> // constructor() { // this.[|#foo|](); // } @@ -18,103 +19,93 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "kind": "method", - "name": "(method) C.#foo(): void", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "contextSpan": { - "start": 14, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === + // class C { + // /*FIND ALL REFS*/<|[|#foo|](){ }|> + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // #foo(){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.#foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === // class C { -// [|#foo|](){ } +// <|[|{| isWriteAccess: true |}#foo|](){ }|> // constructor() { // this./*FIND ALL REFS*/[|#foo|](); // } @@ -132,98 +123,90 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "kind": "method", - "name": "(method) C.#foo(): void", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "contextSpan": { - "start": 14, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === + // class C { + // <|[|#foo|](){ }|> + // constructor() { + // this./*FIND ALL REFS*/#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // #foo(){ } + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.#foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === // class C { // #foo(){ } @@ -238,106 +221,96 @@ // } // } // class E { -// /*FIND ALL REFS*/[|#foo|](){ } +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}#foo|](){ }|> // constructor() { // this.[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "kind": "method", - "name": "(method) E.#foo(): void", - "textSpan": { - "start": 175, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 175, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 175, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "contextSpan": { - "start": 175, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 218, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === + // class C { + // #foo(){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // /*FIND ALL REFS*/<|[|#foo|](){ }|> + // constructor() { + // this.#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) E.#foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === // class C { // #foo(){ } @@ -352,100 +325,89 @@ // } // } // class E { -// [|#foo|](){ } +// <|[|{| isWriteAccess: true |}#foo|](){ }|> // constructor() { // this./*FIND ALL REFS*/[|#foo|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "kind": "method", - "name": "(method) E.#foo(): void", - "textSpan": { - "start": 175, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 175, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 175, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "contextSpan": { - "start": 175, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameMethods.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameMethods.ts === + // class C { + // #foo(){ } + // constructor() { + // this.#foo(); + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|[|#foo|](){ }|> + // constructor() { + // this./*FIND ALL REFS*/#foo(); + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) E.#foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPrivateNameProperties.baseline.jsonc b/tests/baselines/reference/findAllRefsPrivateNameProperties.baseline.jsonc index 14fc8064f961b..3614618947809 100644 --- a/tests/baselines/reference/findAllRefsPrivateNameProperties.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPrivateNameProperties.baseline.jsonc @@ -1,8 +1,9 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === // class C { -// /*FIND ALL REFS*/[|#foo|] = 10; +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}#foo|] = 10;|> // constructor() { -// this.[|#foo|] = 20; +// this.[|{| isWriteAccess: true |}#foo|] = 20; // [|#foo|] in this; // } // } @@ -19,106 +20,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === + // class C { + // /*FIND ALL REFS*/<|[|#foo|] = 10;|> + // constructor() { + // this.#foo = 20; + // #foo in this; + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // #foo: number; + // constructor() { + // this.#foo = 20; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === // class C { -// [|#foo|] = 10; +// <|[|{| isWriteAccess: true |}#foo|] = 10;|> // constructor() { -// this./*FIND ALL REFS*/[|#foo|] = 20; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}#foo|] = 20; // [|#foo|] in this; // } // } @@ -135,103 +118,88 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === + // class C { + // <|[|#foo|] = 10;|> + // constructor() { + // this./*FIND ALL REFS*/#foo = 20; + // #foo in this; + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // #foo: number; + // constructor() { + // this.#foo = 20; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === // class C { -// [|#foo|] = 10; +// <|[|{| isWriteAccess: true |}#foo|] = 10;|> // constructor() { -// this.[|#foo|] = 20; +// this.[|{| isWriteAccess: true |}#foo|] = 20; // /*FIND ALL REFS*/[|#foo|] in this; // } // } @@ -248,98 +216,83 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "kind": "property", - "name": "(property) C.#foo: number", - "textSpan": { - "start": 14, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "contextSpan": { - "start": 14, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === + // class C { + // <|[|#foo|] = 10;|> + // constructor() { + // this.#foo = 20; + // /*FIND ALL REFS*/#foo in this; + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // #foo: number; + // constructor() { + // this.#foo = 20; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === // class C { // #foo = 10; @@ -355,98 +308,89 @@ // } // } // class E { -// /*FIND ALL REFS*/[|#foo|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}#foo|]: number;|> // constructor() { -// this.[|#foo|] = 20; +// this.[|{| isWriteAccess: true |}#foo|] = 20; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 201, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 201, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 201, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "contextSpan": { - "start": 201, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 248, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === + // class C { + // #foo = 10; + // constructor() { + // this.#foo = 20; + // #foo in this; + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // /*FIND ALL REFS*/<|[|#foo|]: number;|> + // constructor() { + // this.#foo = 20; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === // class C { // #foo = 10; @@ -462,92 +406,82 @@ // } // } // class E { -// [|#foo|]: number; +// <|[|#foo|]: number;|> // constructor() { -// this./*FIND ALL REFS*/[|#foo|] = 20; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}#foo|] = 20; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "kind": "property", - "name": "(property) E.#foo: number", - "textSpan": { - "start": 201, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "#foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 201, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 201, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "contextSpan": { - "start": 201, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 248, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPrivateNameProperties.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPrivateNameProperties.ts === + // class C { + // #foo = 10; + // constructor() { + // this.#foo = 20; + // #foo in this; + // } + // } + // class D extends C { + // constructor() { + // super() + // this.#foo = 20; + // } + // } + // class E { + // <|[|#foo|]: number;|> + // constructor() { + // this./*FIND ALL REFS*/#foo = 20; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) E.#foo: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "#foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsPropertyContextuallyTypedByTypeParam01.baseline.jsonc b/tests/baselines/reference/findAllRefsPropertyContextuallyTypedByTypeParam01.baseline.jsonc index 3fb151b80c310..12a807dcf9282 100644 --- a/tests/baselines/reference/findAllRefsPropertyContextuallyTypedByTypeParam01.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsPropertyContextuallyTypedByTypeParam01.baseline.jsonc @@ -1,11 +1,12 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts === // interface IFoo { -// /*FIND ALL REFS*/[|a|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}a|]: string;|> // } // class C { // method() { // var x: T = { -// [|a|]: "" +// <|[|{| isWriteAccess: true |}a|]: ""|> // }; // x.[|a|]; // } @@ -13,117 +14,76 @@ // // // var x: IFoo = { -// [|a|]: "ss" +// <|[|{| isWriteAccess: true |}a|]: "ss"|> // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts", - "kind": "property", - "name": "(property) IFoo.a: string", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 21, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts", - "contextSpan": { - "start": 21, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts", - "contextSpan": { - "start": 108, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 135, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 168, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts", - "contextSpan": { - "start": 168, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsPropertyContextuallyTypedByTypeParam01.ts === + // interface IFoo { + // /*FIND ALL REFS*/<|[|a|]: string;|> + // } + // class C { + // method() { + // var x: T = { + // a: "" + // }; + // x.a; + // } + // } + // + // + // var x: IFoo = { + // a: "ss" + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) IFoo.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExportLocal.baseline.jsonc b/tests/baselines/reference/findAllRefsReExportLocal.baseline.jsonc index 0b1c2bb87cd35..816e6b0e61766 100644 --- a/tests/baselines/reference/findAllRefsReExportLocal.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExportLocal.baseline.jsonc @@ -1,2503 +1,1803 @@ +// === findAllReferences === // === /a.ts === -// var /*FIND ALL REFS*/[|x|]; -// export { [|x|] }; -// export { [|x|] as [|y|] }; +// <|var /*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}x|];|> +// <|export { [|{| defId: 0, isWriteAccess: true |}x|] };|> +// <|<|export { [|{| contextId: 2, defId: 0 |}x|] as [|{| contextId: 3, defId: 2, isWriteAccess: true |}y|] };|>|> // === /b.ts === -// import { [|x|], [|y|] } from "./a"; -// [|x|]; [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 7, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|<|import { [|{| contextId: 4, defId: 1, isWriteAccess: true |}x|], [|{| contextId: 5, defId: 3, isWriteAccess: true |}y|] } from "./a";|>|> +// [|{| defId: 1 |}x|]; [|{| defId: 3 |}y|]; + + // === Definitions === + // === /a.ts === + // <|var /*FIND ALL REFS*/[|{| defId: 0 |}x|];|> + // export { x }; + // <|export { x as [|{| defId: 2 |}y|] };|> + + // === /b.ts === + // <|<|import { [|{| contextId: 2, defId: 1 |}x|], [|{| contextId: 3, defId: 3 |}y|] } from "./a";|>|> + // x; y; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var x: any\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: any\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// var [|x|]; -// export { /*FIND ALL REFS*/[|x|] }; -// export { [|x|] as [|y|] }; +// <|var [|{| defId: 0 |}x|];|> +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] };|> +// <|<|export { [|{| contextId: 2, defId: 0 |}x|] as [|{| contextId: 3, defId: 2, isWriteAccess: true |}y|] };|>|> // === /b.ts === -// import { [|x|], [|y|] } from "./a"; -// [|x|]; [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 7, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|<|import { [|{| contextId: 4, defId: 1, isWriteAccess: true |}x|], [|{| contextId: 5, defId: 3, isWriteAccess: true |}y|] } from "./a";|>|> +// [|{| defId: 1 |}x|]; [|{| defId: 3 |}y|]; + + // === Definitions === + // === /a.ts === + // <|var [|{| defId: 0 |}x|];|> + // export { /*FIND ALL REFS*/x }; + // <|export { x as [|{| defId: 2 |}y|] };|> + + // === /b.ts === + // <|<|import { [|{| contextId: 2, defId: 1 |}x|], [|{| contextId: 3, defId: 3 |}y|] } from "./a";|>|> + // x; y; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var x: any\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: any\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// var [|x|]; -// export { [|x|] }; -// export { /*FIND ALL REFS*/[|x|] as [|y|] }; +// <|var [|{| defId: 0 |}x|];|> +// <|export { [|{| defId: 0, isWriteAccess: true |}x|] };|> +// <|<|export { /*FIND ALL REFS*/[|{| contextId: 2, defId: 0 |}x|] as [|{| contextId: 3, defId: 2, isWriteAccess: true |}y|] };|>|> // === /b.ts === -// import { [|x|], [|y|] } from "./a"; -// [|x|]; [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 6 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 7, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": false - } +// <|<|import { [|{| contextId: 4, defId: 1, isWriteAccess: true |}x|], [|{| contextId: 5, defId: 3, isWriteAccess: true |}y|] } from "./a";|>|> +// [|{| defId: 1 |}x|]; [|{| defId: 3 |}y|]; + + // === Definitions === + // === /a.ts === + // <|var [|{| defId: 0 |}x|];|> + // export { x }; + // <|export { /*FIND ALL REFS*/x as [|{| defId: 2 |}y|] };|> + + // === /b.ts === + // <|<|import { [|{| contextId: 2, defId: 1 |}x|], [|{| contextId: 3, defId: 3 |}y|] } from "./a";|>|> + // x; y; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var x: any\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: any\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] -// === /a.ts === -// var [|x|]; -// export { [|x|] }; -// export { [|x|] as [|y|] }; + +// === findAllReferences === // === /b.ts === -// import { /*FIND ALL REFS*/[|x|], [|y|] } from "./a"; -// [|x|]; [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var x: any\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|<|import { /*FIND ALL REFS*/[|{| contextId: 0, defId: 0, isWriteAccess: true, isDefinition: true |}x|], [|{| contextId: 1, defId: 3, isWriteAccess: true |}y|] } from "./a";|>|> +// [|{| defId: 0 |}x|]; [|{| defId: 3 |}y|]; + +// === /a.ts === +// <|var [|{| defId: 1 |}x|];|> +// <|export { [|{| defId: 1, isWriteAccess: true |}x|] };|> +// <|<|export { [|{| contextId: 4, defId: 1 |}x|] as [|{| contextId: 5, defId: 2, isWriteAccess: true |}y|] };|>|> + + // === Definitions === + // === /b.ts === + // <|<|import { /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}x|], [|{| contextId: 1, defId: 3 |}y|] } from "./a";|>|> + // x; y; + + // === /a.ts === + // <|var [|{| defId: 1 |}x|];|> + // export { x }; + // <|export { x as [|{| defId: 2 |}y|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: any\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 7, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] -// === /a.ts === -// var [|x|]; -// export { [|x|] }; -// export { [|x|] as [|y|] }; + +// === findAllReferences === // === /b.ts === -// import { [|x|], [|y|] } from "./a"; -// /*FIND ALL REFS*/[|x|]; [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var x: any\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } +// <|<|import { [|{| contextId: 0, defId: 0, isWriteAccess: true |}x|], [|{| contextId: 1, defId: 3, isWriteAccess: true |}y|] } from "./a";|>|> +// /*FIND ALL REFS*/[|{| defId: 0 |}x|]; [|{| defId: 3 |}y|]; + +// === /a.ts === +// <|var [|{| defId: 1 |}x|];|> +// <|export { [|{| defId: 1, isWriteAccess: true |}x|] };|> +// <|<|export { [|{| contextId: 4, defId: 1 |}x|] as [|{| contextId: 5, defId: 2, isWriteAccess: true |}y|] };|>|> + + // === Definitions === + // === /b.ts === + // <|<|import { [|{| contextId: 0, defId: 0 |}x|], [|{| contextId: 1, defId: 3 |}y|] } from "./a";|>|> + // /*FIND ALL REFS*/x; y; + + // === /a.ts === + // <|var [|{| defId: 1 |}x|];|> + // export { x }; + // <|export { x as [|{| defId: 2 |}y|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: any\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 6 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 7, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /b.ts === -// import { x, [|y|] } from "./a"; -// x; [|y|]; +// === findAllReferences === // === /a.ts === // var x; // export { x }; -// export { x as /*FIND ALL REFS*/[|y|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export { x as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}y|] };|> + +// === /b.ts === +// <|import { x, [|{| defId: 1, isWriteAccess: true |}y|] } from "./a";|> +// x; [|{| defId: 1 |}y|]; + + // === Definitions === + // === /a.ts === + // var x; + // export { x }; + // <|export { x as /*FIND ALL REFS*/[|{| defId: 0 |}y|] };|> + + // === /b.ts === + // <|import { x, [|{| defId: 1 |}y|] } from "./a";|> + // x; y; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x, /*FIND ALL REFS*/[|y|] } from "./a"; -// x; [|y|]; +// <|import { x, /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}y|] } from "./a";|> +// x; [|{| defId: 0 |}y|]; // === /a.ts === // var x; // export { x }; -// export { x as [|y|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|export { x as [|{| defId: 1, isWriteAccess: true |}y|] };|> + + // === Definitions === + // === /b.ts === + // <|import { x, /*FIND ALL REFS*/[|{| defId: 0 |}y|] } from "./a";|> + // x; y; + + // === /a.ts === + // var x; + // export { x }; + // <|export { x as [|{| defId: 1 |}y|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x, [|y|] } from "./a"; -// x; /*FIND ALL REFS*/[|y|]; +// <|import { x, [|{| defId: 0, isWriteAccess: true |}y|] } from "./a";|> +// x; /*FIND ALL REFS*/[|{| defId: 0 |}y|]; // === /a.ts === // var x; // export { x }; -// export { x as [|y|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) var y: any\nimport y", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } +// <|export { x as [|{| defId: 1, isWriteAccess: true |}y|] };|> + + // === Definitions === + // === /b.ts === + // <|import { x, [|{| defId: 0 |}y|] } from "./a";|> + // x; /*FIND ALL REFS*/y; + + // === /a.ts === + // var x; + // export { x }; + // <|export { x as [|{| defId: 1 |}y|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nimport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "(alias) var y: any\nexport y", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 21, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 21, - "length": 18 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var y: any\nexport y", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|var /*RENAME*/[|xRENAME|];|> +// <|export { [|xRENAME|] as x/*END SUFFIX*/ };|> +// <|export { [|xRENAME|] as y };|> + + + +// === findRenameLocations === +// === /a.ts === +// <|var [|xRENAME|];|> +// <|export { [|xRENAME|] as x/*END SUFFIX*/ };|> +// <|export { /*RENAME*/[|xRENAME|] as y };|> + + + +// === findRenameLocations === +// === /a.ts === +// var x; +// <|export { /*START PREFIX*/x as /*RENAME*/[|xRENAME|] };|> +// export { x as y }; + +// === /b.ts === +// <|import { [|xRENAME|], y } from "./a";|> +// [|xRENAME|]; y; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { /*START PREFIX*/x as /*RENAME*/[|xRENAME|], y } from "./a";|> +// [|xRENAME|]; y; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { /*START PREFIX*/x as [|xRENAME|], y } from "./a";|> +// /*RENAME*/[|xRENAME|]; y; + + + +// === findRenameLocations === +// === /a.ts === +// var x; +// export { x }; +// <|export { x as /*RENAME*/[|yRENAME|] };|> + +// === /b.ts === +// <|import { x, [|yRENAME|] } from "./a";|> +// x; [|yRENAME|]; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { x, /*START PREFIX*/y as /*RENAME*/[|yRENAME|] } from "./a";|> +// x; [|yRENAME|]; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { x, /*START PREFIX*/y as [|yRENAME|] } from "./a";|> +// x; /*RENAME*/[|yRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExportRightNameWrongSymbol.baseline.jsonc b/tests/baselines/reference/findAllRefsReExportRightNameWrongSymbol.baseline.jsonc index bbe527484030d..8471aacaff3be 100644 --- a/tests/baselines/reference/findAllRefsReExportRightNameWrongSymbol.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExportRightNameWrongSymbol.baseline.jsonc @@ -1,1256 +1,997 @@ +// === findAllReferences === // === /a.ts === -// export const /*FIND ALL REFS*/[|x|] = 0; +// <|export const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] = 0;|> // === /c.ts === // export { x } from "./b"; -// import { [|x|] } from "./a"; -// [|x|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|import { [|{| defId: 1, isWriteAccess: true |}x|] } from "./a";|> +// [|{| defId: 1 |}x|]; + + // === Definitions === + // === /a.ts === + // <|export const /*FIND ALL REFS*/[|{| defId: 0 |}x|] = 0;|> + + // === /c.ts === + // export { x } from "./b"; + // <|import { [|{| defId: 1 |}x|] } from "./a";|> + // x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 34, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 25, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 25, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 50, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /b.ts === +// <|export const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] = 0;|> // === /c.ts === -// export { [|x|] } from "./b"; +// <|export { [|{| defId: 1, isWriteAccess: true |}x|] } from "./b";|> // import { x } from "./a"; // x; // === /d.ts === -// import { [|x|] } from "./c"; +// <|import { [|{| defId: 2, isWriteAccess: true |}x|] } from "./c";|> -// === /b.ts === -// export const /*FIND ALL REFS*/[|x|] = 0; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /b.ts === + // <|export const /*FIND ALL REFS*/[|{| defId: 0 |}x|] = 0;|> + + // === /c.ts === + // <|export { [|{| defId: 1 |}x|] } from "./b";|> + // import { x } from "./a"; + // x; + + // === /d.ts === + // <|import { [|{| defId: 2 |}x|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nexport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nexport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c.ts === -// export { /*FIND ALL REFS*/[|x|] } from "./b"; +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] } from "./b";|> // import { x } from "./a"; // x; // === /d.ts === -// import { [|x|] } from "./c"; +// <|import { [|{| defId: 1, isWriteAccess: true |}x|] } from "./c";|> // === /b.ts === -// export const [|x|] = 0; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nexport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export const [|{| defId: 2, isWriteAccess: true |}x|] = 0;|> + + // === Definitions === + // === /c.ts === + // <|export { /*FIND ALL REFS*/[|{| defId: 0 |}x|] } from "./b";|> + // import { x } from "./a"; + // x; + + // === /d.ts === + // <|import { [|{| defId: 1 |}x|] } from "./c";|> + + // === /b.ts === + // <|export const [|{| defId: 2 |}x|] = 0;|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nexport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /a.ts === -// export const [|x|] = 0; +// === findAllReferences === // === /c.ts === // export { x } from "./b"; -// import { /*FIND ALL REFS*/[|x|] } from "./a"; -// [|x|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 34, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 25, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 25, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] } from "./a";|> +// [|{| defId: 0 |}x|]; + +// === /a.ts === +// <|export const [|{| defId: 1, isWriteAccess: true |}x|] = 0;|> + + // === Definitions === + // === /c.ts === + // export { x } from "./b"; + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}x|] } from "./a";|> + // x; + + // === /a.ts === + // <|export const [|{| defId: 1 |}x|] = 0;|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /a.ts === -// export const [|x|] = 0; +// === findAllReferences === // === /c.ts === // export { x } from "./b"; -// import { [|x|] } from "./a"; -// /*FIND ALL REFS*/[|x|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 34, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 25, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 25, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 1 - }, - "fileName": "/c.ts", - "isWriteAccess": false - } +// <|import { [|{| defId: 0, isWriteAccess: true |}x|] } from "./a";|> +// /*FIND ALL REFS*/[|{| defId: 0 |}x|]; + +// === /a.ts === +// <|export const [|{| defId: 1, isWriteAccess: true |}x|] = 0;|> + + // === Definitions === + // === /c.ts === + // export { x } from "./b"; + // <|import { [|{| defId: 0 |}x|] } from "./a";|> + // /*FIND ALL REFS*/x; + + // === /a.ts === + // <|export const [|{| defId: 1 |}x|] = 0;|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /d.ts === -// import { /*FIND ALL REFS*/[|x|] } from "./c"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] } from "./c";|> // === /c.ts === -// export { [|x|] } from "./b"; +// <|export { [|{| defId: 1, isWriteAccess: true |}x|] } from "./b";|> // import { x } from "./a"; // x; // === /b.ts === -// export const [|x|] = 0; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export const [|{| defId: 2, isWriteAccess: true |}x|] = 0;|> + + // === Definitions === + // === /d.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}x|] } from "./c";|> + + // === /c.ts === + // <|export { [|{| defId: 1 |}x|] } from "./b";|> + // import { x } from "./a"; + // x; + + // === /b.ts === + // <|export const [|{| defId: 2 |}x|] = 0;|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) const x: 0\nexport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nexport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|export const /*RENAME*/[|xRENAME|] = 0;|> + +// === /c.ts === +// export { x } from "./b"; +// <|import { [|xRENAME|] } from "./a";|> +// [|xRENAME|]; + + + +// === findRenameLocations === +// === /c.ts === +// export { x } from "./b"; +// <|import { /*START PREFIX*/x as /*RENAME*/[|xRENAME|] } from "./a";|> +// [|xRENAME|]; + + + +// === findRenameLocations === +// === /c.ts === +// export { x } from "./b"; +// <|import { /*START PREFIX*/x as [|xRENAME|] } from "./a";|> +// /*RENAME*/[|xRENAME|]; + + + +// === findRenameLocations === +// === /b.ts === +// <|export const /*RENAME*/[|xRENAME|] = 0;|> + +// === /c.ts === +// <|export { [|xRENAME|] as x/*END SUFFIX*/ } from "./b";|> +// import { x } from "./a"; +// x; + + + +// === findRenameLocations === +// === /c.ts === +// <|export { /*START PREFIX*/x as /*RENAME*/[|xRENAME|] } from "./b";|> +// import { x } from "./a"; +// x; + +// === /d.ts === +// <|import { [|xRENAME|] } from "./c";|> + + + +// === findRenameLocations === +// === /d.ts === +// <|import { /*START PREFIX*/x as /*RENAME*/[|xRENAME|] } from "./c";|> \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExportStar.baseline.jsonc b/tests/baselines/reference/findAllRefsReExportStar.baseline.jsonc index 782c388606862..4a015e8404e4b 100644 --- a/tests/baselines/reference/findAllRefsReExportStar.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExportStar.baseline.jsonc @@ -1,345 +1,265 @@ +// === findAllReferences === +// === /a.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](): void {}|> + // === /c.ts === -// import { [|foo|] } from "./b"; +// <|import { [|{| defId: 1, isWriteAccess: true |}foo|] } from "./b";|> -// === /a.ts === -// export function /*FIND ALL REFS*/[|foo|](): void {} + // === Definitions === + // === /a.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}foo|](): void {}|> + + // === /c.ts === + // <|import { [|{| defId: 1 |}foo|] } from "./b";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nimport foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nimport foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c.ts === -// import { /*FIND ALL REFS*/[|foo|] } from "./b"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] } from "./b";|> // === /a.ts === -// export function [|foo|](): void {} +// <|export function [|{| defId: 1, isWriteAccess: true |}foo|](): void {}|> + + // === Definitions === + // === /c.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}foo|] } from "./b";|> + + // === /a.ts === + // <|export function [|{| defId: 1 |}foo|](): void {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nimport foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nimport foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExportStarAs.baseline.jsonc b/tests/baselines/reference/findAllRefsReExportStarAs.baseline.jsonc index 02030bdb8eaf9..406c5fb4cec45 100644 --- a/tests/baselines/reference/findAllRefsReExportStarAs.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExportStarAs.baseline.jsonc @@ -1,521 +1,329 @@ +// === findAllReferences === // === /leafModule.ts === -// export const /*FIND ALL REFS*/[|hello|] = () => 'Hello'; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}hello|] = () => 'Hello';|> // === /importing.ts === // import { Leaf } from './exporting'; // Leaf.[|hello|]() -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/leafModule.ts", - "kind": "const", - "name": "const hello: () => string", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "hello", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/leafModule.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 5 - }, - "fileName": "/importing.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /leafModule.ts === + // <|export const /*FIND ALL REFS*/[|hello|] = () => 'Hello';|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const hello: () => string", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /leafModule.ts === -// export const [|hello|] = () => 'Hello'; +// <|export const [|{| isWriteAccess: true |}hello|] = () => 'Hello';|> // === /importing.ts === // import { Leaf } from './exporting'; // Leaf./*FIND ALL REFS*/[|hello|]() -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/leafModule.ts", - "kind": "const", - "name": "const hello: () => string", - "textSpan": { - "start": 13, - "length": 5 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "hello", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 5 - }, - "fileName": "/leafModule.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 5 - }, - "fileName": "/importing.ts", - "isWriteAccess": false - } + // === Definitions === + // === /leafModule.ts === + // <|export const [|hello|] = () => 'Hello';|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const hello: () => string", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] -// === /importing.ts === -// import { [|Leaf|] } from './exporting'; -// [|Leaf|].hello() + +// === findAllReferences === // === /exporting.ts === -// export * as /*FIND ALL REFS*/[|Leaf|] from './leafModule'; +// <|export * as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}Leaf|] from './leafModule';|> + +// === /importing.ts === +// <|import { [|{| defId: 1, isWriteAccess: true |}Leaf|] } from './exporting';|> +// [|{| defId: 1 |}Leaf|].hello() + + // === Definitions === + // === /exporting.ts === + // <|export * as /*FIND ALL REFS*/[|{| defId: 0 |}Leaf|] from './leafModule';|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/exporting.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/exporting.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /importing.ts === + // <|import { [|{| defId: 1 |}Leaf|] } from './exporting';|> + // Leaf.hello() + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/importing.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/importing.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 36, - "length": 4 - }, - "fileName": "/importing.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /importing.ts === -// import { /*FIND ALL REFS*/[|Leaf|] } from './exporting'; -// [|Leaf|].hello() +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}Leaf|] } from './exporting';|> +// [|{| defId: 0 |}Leaf|].hello() // === /exporting.ts === -// export * as [|Leaf|] from './leafModule'; +// <|export * as [|{| defId: 1, isWriteAccess: true |}Leaf|] from './leafModule';|> + + // === Definitions === + // === /importing.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}Leaf|] } from './exporting';|> + // Leaf.hello() + + // === /exporting.ts === + // <|export * as [|{| defId: 1 |}Leaf|] from './leafModule';|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/importing.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/importing.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 36, - "length": 4 - }, - "fileName": "/importing.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/exporting.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/exporting.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /importing.ts === -// import { [|Leaf|] } from './exporting'; -// /*FIND ALL REFS*/[|Leaf|].hello() +// <|import { [|{| defId: 0, isWriteAccess: true |}Leaf|] } from './exporting';|> +// /*FIND ALL REFS*/[|{| defId: 0 |}Leaf|].hello() // === /exporting.ts === -// export * as [|Leaf|] from './leafModule'; +// <|export * as [|{| defId: 1, isWriteAccess: true |}Leaf|] from './leafModule';|> + + // === Definitions === + // === /importing.ts === + // <|import { [|{| defId: 0 |}Leaf|] } from './exporting';|> + // /*FIND ALL REFS*/Leaf.hello() + + // === /exporting.ts === + // <|export * as [|{| defId: 1 |}Leaf|] from './leafModule';|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/importing.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/importing.ts", - "contextSpan": { - "start": 0, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 4 - }, - "fileName": "/importing.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/exporting.ts", - "kind": "alias", - "name": "import Leaf", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Leaf", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/exporting.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Leaf", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Leaf", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExport_broken.baseline.jsonc b/tests/baselines/reference/findAllRefsReExport_broken.baseline.jsonc index a1668cbd1b6a2..c0ca7769a83b5 100644 --- a/tests/baselines/reference/findAllRefsReExport_broken.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExport_broken.baseline.jsonc @@ -1,103 +1,65 @@ +// === findAllReferences === // === /a.ts === -// /*FIND ALL REFS*/export { [|x|] }; +// /*FIND ALL REFS*/<|export { [|{| isWriteAccess: true, isDefinition: true |}x|] };|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "export x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.ts === + // /*FIND ALL REFS*/<|export { [|x|] };|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export x", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export { /*FIND ALL REFS*/[|x|] }; +// <|export { /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] };|> + + // === Definitions === + // === /a.ts === + // <|export { /*FIND ALL REFS*/[|x|] };|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "export x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export x", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExport_broken2.baseline.jsonc b/tests/baselines/reference/findAllRefsReExport_broken2.baseline.jsonc index 72d9d523c8f9a..d6b07408a6551 100644 --- a/tests/baselines/reference/findAllRefsReExport_broken2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExport_broken2.baseline.jsonc @@ -1,103 +1,65 @@ +// === findAllReferences === // === /a.ts === -// /*FIND ALL REFS*/export { [|x|] } from "nonsense"; +// /*FIND ALL REFS*/<|export { [|{| isWriteAccess: true, isDefinition: true |}x|] } from "nonsense";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "export x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.ts === + // /*FIND ALL REFS*/<|export { [|x|] } from "nonsense";|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export x", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export { /*FIND ALL REFS*/[|x|] } from "nonsense"; +// <|export { /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] } from "nonsense";|> + + // === Definitions === + // === /a.ts === + // <|export { /*FIND ALL REFS*/[|x|] } from "nonsense";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "alias", - "name": "export x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export x", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExports.baseline.jsonc b/tests/baselines/reference/findAllRefsReExports.baseline.jsonc index 5a75b6841434e..82f3f29bbb07d 100644 --- a/tests/baselines/reference/findAllRefsReExports.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExports.baseline.jsonc @@ -1,8097 +1,6020 @@ +// === findAllReferences === +// === /a.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](): void {}|> + // === /b.ts === -// export { [|foo|] as [|bar|] } from "./a"; +// <|<|export { [|{| contextId: 1, defId: 0 |}foo|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { [|foo|] as [|default|] } from "./a"; +// <|<|export { [|{| contextId: 3, defId: 0 |}foo|] as [|{| contextId: 4, defId: 3, isWriteAccess: true |}default|] } from "./a";|>|> // === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); [|boom|](); +// <|import { [|{| defId: 2, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 7, defId: 3 |}default|] as [|{| contextId: 8, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 5, isWriteAccess: true |}boom|] from "./d";|> +// [|{| defId: 2 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); [|{| defId: 5 |}boom|](); // === /d.ts === -// export { [|default|] } from "./c"; +// <|export { [|{| defId: 4, isWriteAccess: true |}default|] } from "./c";|> -// === /a.ts === -// export function /*FIND ALL REFS*/[|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}foo|](): void {}|> + + // === /b.ts === + // <|export { foo as [|{| defId: 1 |}bar|] } from "./a";|> + + // === /e.ts === + // <|import { [|{| defId: 2 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import [|{| defId: 5 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === /c.ts === + // <|export { foo as [|{| defId: 3 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 4 |}default|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /a.ts === +// <|export function [|{| defId: 0, isWriteAccess: true |}foo|](): void {}|> // === /b.ts === -// export { /*FIND ALL REFS*/[|foo|] as [|bar|] } from "./a"; +// <|<|export { /*FIND ALL REFS*/[|{| contextId: 1, defId: 0 |}foo|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { [|foo|] as [|default|] } from "./a"; +// <|<|export { [|{| contextId: 3, defId: 0 |}foo|] as [|{| contextId: 4, defId: 3, isWriteAccess: true |}default|] } from "./a";|>|> // === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); [|boom|](); +// <|import { [|{| defId: 2, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 7, defId: 3 |}default|] as [|{| contextId: 8, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 5, isWriteAccess: true |}boom|] from "./d";|> +// [|{| defId: 2 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); [|{| defId: 5 |}boom|](); // === /d.ts === -// export { [|default|] } from "./c"; +// <|export { [|{| defId: 4, isWriteAccess: true |}default|] } from "./c";|> -// === /a.ts === -// export function [|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export function [|{| defId: 0 |}foo|](): void {}|> + + // === /b.ts === + // <|export { /*FIND ALL REFS*/foo as [|{| defId: 1 |}bar|] } from "./a";|> + + // === /e.ts === + // <|import { [|{| defId: 2 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import [|{| defId: 5 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === /c.ts === + // <|export { foo as [|{| defId: 3 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 4 |}default|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /a.ts === +// <|export function [|{| defId: 0, isWriteAccess: true |}foo|](): void {}|> // === /b.ts === -// export { [|foo|] as [|bar|] } from "./a"; +// <|<|export { [|{| contextId: 1, defId: 0 |}foo|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { /*FIND ALL REFS*/[|foo|] as [|default|] } from "./a"; +// <|<|export { /*FIND ALL REFS*/[|{| contextId: 3, defId: 0 |}foo|] as [|{| contextId: 4, defId: 3, isWriteAccess: true |}default|] } from "./a";|>|> // === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); [|boom|](); +// <|import { [|{| defId: 2, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 7, defId: 3 |}default|] as [|{| contextId: 8, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 5, isWriteAccess: true |}boom|] from "./d";|> +// [|{| defId: 2 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); [|{| defId: 5 |}boom|](); // === /d.ts === -// export { [|default|] } from "./c"; +// <|export { [|{| defId: 4, isWriteAccess: true |}default|] } from "./c";|> -// === /a.ts === -// export function [|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export function [|{| defId: 0 |}foo|](): void {}|> + + // === /b.ts === + // <|export { foo as [|{| defId: 1 |}bar|] } from "./a";|> + + // === /e.ts === + // <|import { [|{| defId: 2 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import [|{| defId: 5 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === /c.ts === + // <|export { /*FIND ALL REFS*/foo as [|{| defId: 3 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 4 |}default|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /b.ts === +// <|export { foo as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}bar|] } from "./a";|> // === /e.ts === -// import { [|bar|] } from "./b"; +// <|import { [|{| defId: 1, isWriteAccess: true |}bar|] } from "./b";|> // import baz from "./c"; // import { default as bang } from "./c"; // import boom from "./d"; -// [|bar|](); baz(); bang(); boom(); +// [|{| defId: 1 |}bar|](); baz(); bang(); boom(); -// === /b.ts === -// export { foo as /*FIND ALL REFS*/[|bar|] } from "./a"; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /b.ts === + // <|export { foo as /*FIND ALL REFS*/[|{| defId: 0 |}bar|] } from "./a";|> + + // === /e.ts === + // <|import { [|{| defId: 1 |}bar|] } from "./b";|> + // import baz from "./c"; + // import { default as bang } from "./c"; + // import boom from "./d"; + // bar(); baz(); bang(); boom(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /e.ts === -// import { /*FIND ALL REFS*/[|bar|] } from "./b"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}bar|] } from "./b";|> // import baz from "./c"; // import { default as bang } from "./c"; // import boom from "./d"; -// [|bar|](); baz(); bang(); boom(); +// [|{| defId: 0 |}bar|](); baz(); bang(); boom(); // === /b.ts === -// export { foo as [|bar|] } from "./a"; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|export { foo as [|{| defId: 1, isWriteAccess: true |}bar|] } from "./a";|> + + // === Definitions === + // === /e.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}bar|] } from "./b";|> + // import baz from "./c"; + // import { default as bang } from "./c"; + // import boom from "./d"; + // bar(); baz(); bang(); boom(); + + // === /b.ts === + // <|export { foo as [|{| defId: 1 |}bar|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /e.ts === -// import { [|bar|] } from "./b"; +// <|import { [|{| defId: 0, isWriteAccess: true |}bar|] } from "./b";|> // import baz from "./c"; // import { default as bang } from "./c"; // import boom from "./d"; -// /*FIND ALL REFS*/[|bar|](); baz(); bang(); boom(); +// /*FIND ALL REFS*/[|{| defId: 0 |}bar|](); baz(); bang(); boom(); // === /b.ts === -// export { foo as [|bar|] } from "./a"; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } +// <|export { foo as [|{| defId: 1, isWriteAccess: true |}bar|] } from "./a";|> + + // === Definitions === + // === /e.ts === + // <|import { [|{| defId: 0 |}bar|] } from "./b";|> + // import baz from "./c"; + // import { default as bang } from "./c"; + // import boom from "./d"; + // /*FIND ALL REFS*/bar(); baz(); bang(); boom(); + + // === /b.ts === + // <|export { foo as [|{| defId: 1 |}bar|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /d.ts === -// export { [|default|] } from "./c"; +// === findAllReferences === // === /c.ts === -// export { foo as /*FIND ALL REFS*/[|default|] } from "./a"; +// <|export { foo as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] } from "./a";|> // === /e.ts === // import { bar } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// bar(); [|baz|](); [|bang|](); [|boom|](); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|import [|{| defId: 3, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 2, defId: 0 |}default|] as [|{| contextId: 3, defId: 4, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 2, isWriteAccess: true |}boom|] from "./d";|> +// bar(); [|{| defId: 3 |}baz|](); [|{| defId: 4 |}bang|](); [|{| defId: 2 |}boom|](); + +// === /d.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./c";|> + + // === Definitions === + // === /c.ts === + // <|export { foo as /*FIND ALL REFS*/[|{| defId: 0 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 1 |}default|] } from "./c";|> + + // === /e.ts === + // import { bar } from "./b"; + // <|import [|{| defId: 3 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 4 |}bang|] } from "./c";|> + // <|import [|{| defId: 2 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /d.ts === -// export { [|default|] } from "./c"; +// === findAllReferences === // === /c.ts === -// export { foo as [|default|] } from "./a"; +// <|export { foo as [|{| defId: 0, isWriteAccess: true |}default|] } from "./a";|> // === /e.ts === // import { bar } from "./b"; -// import [|baz|] from "./c"; -// import { /*FIND ALL REFS*/[|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// bar(); [|baz|](); [|bang|](); [|boom|](); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false - } +// <|import [|{| defId: 3, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { /*FIND ALL REFS*/[|{| contextId: 2, defId: 0 |}default|] as [|{| contextId: 3, defId: 4, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 2, isWriteAccess: true |}boom|] from "./d";|> +// bar(); [|{| defId: 3 |}baz|](); [|{| defId: 4 |}bang|](); [|{| defId: 2 |}boom|](); + +// === /d.ts === +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./c";|> + + // === Definitions === + // === /c.ts === + // <|export { foo as [|{| defId: 0 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 1 |}default|] } from "./c";|> + + // === /e.ts === + // import { bar } from "./b"; + // <|import [|{| defId: 3 |}baz|] from "./c";|> + // <|import { /*FIND ALL REFS*/default as [|{| defId: 4 |}bang|] } from "./c";|> + // <|import [|{| defId: 2 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /d.ts === -// export { /*FIND ALL REFS*/[|default|] } from "./c"; +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}default|] } from "./c";|> + +// === /e.ts === +// <|import { [|{| defId: 4, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 3, defId: 5 |}default|] as [|{| contextId: 4, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 1, isWriteAccess: true |}boom|] from "./d";|> +// [|{| defId: 4 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); [|{| defId: 1 |}boom|](); + +// === /a.ts === +// <|export function [|{| defId: 2, isWriteAccess: true |}foo|](): void {}|> // === /b.ts === -// export { [|foo|] as [|bar|] } from "./a"; +// <|<|export { [|{| contextId: 7, defId: 2 |}foo|] as [|{| contextId: 8, defId: 3, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { [|foo|] as [|default|] } from "./a"; +// <|<|export { [|{| contextId: 9, defId: 2 |}foo|] as [|{| contextId: 10, defId: 5, isWriteAccess: true |}default|] } from "./a";|>|> -// === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); [|boom|](); + // === Definitions === + // === /d.ts === + // <|export { /*FIND ALL REFS*/[|{| defId: 0 |}default|] } from "./c";|> -// === /a.ts === -// export function [|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /e.ts === + // <|import { [|{| defId: 4 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import [|{| defId: 1 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === /a.ts === + // <|export function [|{| defId: 2 |}foo|](): void {}|> + + // === /b.ts === + // <|export { foo as [|{| defId: 3 |}bar|] } from "./a";|> + + // === /c.ts === + // <|export { foo as [|{| defId: 5 |}default|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] -// === /d.ts === -// export { [|default|] } from "./c"; -// === /c.ts === -// export { foo as [|default|] } from "./a"; +// === findAllReferences === // === /e.ts === // import { bar } from "./b"; -// import /*FIND ALL REFS*/[|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// bar(); [|baz|](); [|bang|](); [|boom|](); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 1, defId: 1 |}default|] as [|{| contextId: 2, defId: 4, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 3, isWriteAccess: true |}boom|] from "./d";|> +// bar(); [|{| defId: 0 |}baz|](); [|{| defId: 4 |}bang|](); [|{| defId: 3 |}boom|](); + +// === /c.ts === +// <|export { foo as [|{| defId: 1, isWriteAccess: true |}default|] } from "./a";|> + +// === /d.ts === +// <|export { [|{| defId: 2, isWriteAccess: true |}default|] } from "./c";|> + + // === Definitions === + // === /e.ts === + // import { bar } from "./b"; + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 4 |}bang|] } from "./c";|> + // <|import [|{| defId: 3 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); + + // === /c.ts === + // <|export { foo as [|{| defId: 1 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 2 |}default|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] -// === /d.ts === -// export { [|default|] } from "./c"; -// === /c.ts === -// export { foo as [|default|] } from "./a"; +// === findAllReferences === // === /e.ts === // import { bar } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// bar(); /*FIND ALL REFS*/[|baz|](); [|bang|](); [|boom|](); - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } +// <|import [|{| defId: 0, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 1, defId: 1 |}default|] as [|{| contextId: 2, defId: 4, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 3, isWriteAccess: true |}boom|] from "./d";|> +// bar(); /*FIND ALL REFS*/[|{| defId: 0 |}baz|](); [|{| defId: 4 |}bang|](); [|{| defId: 3 |}boom|](); + +// === /c.ts === +// <|export { foo as [|{| defId: 1, isWriteAccess: true |}default|] } from "./a";|> + +// === /d.ts === +// <|export { [|{| defId: 2, isWriteAccess: true |}default|] } from "./c";|> + + // === Definitions === + // === /e.ts === + // import { bar } from "./b"; + // <|import [|{| defId: 0 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 4 |}bang|] } from "./c";|> + // <|import [|{| defId: 3 |}boom|] from "./d";|> + // bar(); /*FIND ALL REFS*/baz(); bang(); boom(); + + // === /c.ts === + // <|export { foo as [|{| defId: 1 |}default|] } from "./a";|> + + // === /d.ts === + // <|export { [|{| defId: 2 |}default|] } from "./c";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /e.ts === // import { bar } from "./b"; // import baz from "./c"; -// import { default as /*FIND ALL REFS*/[|bang|] } from "./c"; +// <|import { default as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bang|] } from "./c";|> // import boom from "./d"; // bar(); baz(); [|bang|](); boom(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /e.ts === + // import { bar } from "./b"; + // import baz from "./c"; + // <|import { default as /*FIND ALL REFS*/[|bang|] } from "./c";|> + // import boom from "./d"; + // bar(); baz(); bang(); boom(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /e.ts === // import { bar } from "./b"; // import baz from "./c"; -// import { default as [|bang|] } from "./c"; +// <|import { default as [|{| isWriteAccess: true |}bang|] } from "./c";|> // import boom from "./d"; // bar(); baz(); /*FIND ALL REFS*/[|bang|](); boom(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + // === Definitions === + // === /e.ts === + // import { bar } from "./b"; + // import baz from "./c"; + // <|import { default as [|bang|] } from "./c";|> + // import boom from "./d"; + // bar(); baz(); /*FIND ALL REFS*/bang(); boom(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /e.ts === +// <|import { [|{| defId: 4, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 2, defId: 5 |}default|] as [|{| contextId: 3, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}boom|] from "./d";|> +// [|{| defId: 4 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); [|{| defId: 0 |}boom|](); // === /d.ts === -// export { [|default|] } from "./c"; +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./c";|> + +// === /a.ts === +// <|export function [|{| defId: 2, isWriteAccess: true |}foo|](): void {}|> // === /b.ts === -// export { [|foo|] as [|bar|] } from "./a"; +// <|<|export { [|{| contextId: 7, defId: 2 |}foo|] as [|{| contextId: 8, defId: 3, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { [|foo|] as [|default|] } from "./a"; +// <|<|export { [|{| contextId: 9, defId: 2 |}foo|] as [|{| contextId: 10, defId: 5, isWriteAccess: true |}default|] } from "./a";|>|> -// === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import /*FIND ALL REFS*/[|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); [|boom|](); + // === Definitions === + // === /e.ts === + // <|import { [|{| defId: 4 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}boom|] from "./d";|> + // bar(); baz(); bang(); boom(); -// === /a.ts === -// export function [|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === /d.ts === + // <|export { [|{| defId: 1 |}default|] } from "./c";|> + + // === /a.ts === + // <|export function [|{| defId: 2 |}foo|](): void {}|> + + // === /b.ts === + // <|export { foo as [|{| defId: 3 |}bar|] } from "./a";|> + + // === /c.ts === + // <|export { foo as [|{| defId: 5 |}default|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /e.ts === +// <|import { [|{| defId: 4, isWriteAccess: true |}bar|] } from "./b";|> +// <|import [|{| defId: 6, isWriteAccess: true |}baz|] from "./c";|> +// <|<|import { [|{| contextId: 2, defId: 5 |}default|] as [|{| contextId: 3, defId: 7, isWriteAccess: true |}bang|] } from "./c";|>|> +// <|import [|{| defId: 0, isWriteAccess: true |}boom|] from "./d";|> +// [|{| defId: 4 |}bar|](); [|{| defId: 6 |}baz|](); [|{| defId: 7 |}bang|](); /*FIND ALL REFS*/[|{| defId: 0 |}boom|](); // === /d.ts === -// export { [|default|] } from "./c"; +// <|export { [|{| defId: 1, isWriteAccess: true |}default|] } from "./c";|> + +// === /a.ts === +// <|export function [|{| defId: 2, isWriteAccess: true |}foo|](): void {}|> // === /b.ts === -// export { [|foo|] as [|bar|] } from "./a"; +// <|<|export { [|{| contextId: 7, defId: 2 |}foo|] as [|{| contextId: 8, defId: 3, isWriteAccess: true |}bar|] } from "./a";|>|> // === /c.ts === -// export { [|foo|] as [|default|] } from "./a"; +// <|<|export { [|{| contextId: 9, defId: 2 |}foo|] as [|{| contextId: 10, defId: 5, isWriteAccess: true |}default|] } from "./a";|>|> -// === /e.ts === -// import { [|bar|] } from "./b"; -// import [|baz|] from "./c"; -// import { [|default|] as [|bang|] } from "./c"; -// import [|boom|] from "./d"; -// [|bar|](); [|baz|](); [|bang|](); /*FIND ALL REFS*/[|boom|](); + // === Definitions === + // === /e.ts === + // <|import { [|{| defId: 4 |}bar|] } from "./b";|> + // <|import [|{| defId: 6 |}baz|] from "./c";|> + // <|import { default as [|{| defId: 7 |}bang|] } from "./c";|> + // <|import [|{| defId: 0 |}boom|] from "./d";|> + // bar(); baz(); bang(); /*FIND ALL REFS*/boom(); -// === /a.ts === -// export function [|foo|](): void {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function boom(): void\nimport boom", - "textSpan": { - "start": 96, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boom", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 89, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 89, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 135, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + // === /d.ts === + // <|export { [|{| defId: 1 |}default|] } from "./c";|> + + // === /a.ts === + // <|export function [|{| defId: 2 |}foo|](): void {}|> + + // === /b.ts === + // <|export { foo as [|{| defId: 3 |}bar|] } from "./a";|> + + // === /c.ts === + // <|export { foo as [|{| defId: 5 |}default|] } from "./a";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function boom(): void\nimport boom", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boom", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 9, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 7 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nexport bar", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nexport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bar(): void\nimport bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bar(): void\nimport bar", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "alias", - "name": "(alias) function foo(): void\nexport default", - "textSpan": { - "start": 16, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 7 - }, - "fileName": "/c.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 59, - "length": 7 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": false - } + }, + { + "defId": 5, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function foo(): void\nexport default", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function baz(): void\nimport baz", - "textSpan": { - "start": 34, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "baz", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 27, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 6, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function baz(): void\nimport baz", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "baz", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "alias", - "name": "(alias) function bang(): void\nimport bang", - "textSpan": { - "start": 70, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bang", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 50, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/e.ts", - "contextSpan": { - "start": 50, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 4 - }, - "fileName": "/e.ts", - "isWriteAccess": false - } + }, + { + "defId": 7, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function bang(): void\nimport bang", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bang", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|export function /*RENAME*/[|fooRENAME|](): void {}|> + +// === /b.ts === +// <|export { [|fooRENAME|] as bar } from "./a";|> + +// === /c.ts === +// <|export { [|fooRENAME|] as default } from "./a";|> + + + +// === findRenameLocations === +// === /a.ts === +// <|export function [|fooRENAME|](): void {}|> + +// === /b.ts === +// <|export { /*RENAME*/[|fooRENAME|] as bar } from "./a";|> + +// === /c.ts === +// <|export { [|fooRENAME|] as default } from "./a";|> + + + +// === findRenameLocations === +// === /a.ts === +// <|export function [|fooRENAME|](): void {}|> + +// === /b.ts === +// <|export { [|fooRENAME|] as bar } from "./a";|> + +// === /c.ts === +// <|export { /*RENAME*/[|fooRENAME|] as default } from "./a";|> + + + +// === findRenameLocations === +// === /b.ts === +// <|export { foo as /*RENAME*/[|barRENAME|] } from "./a";|> + +// === /e.ts === +// <|import { [|barRENAME|] } from "./b";|> +// import baz from "./c"; +// import { default as bang } from "./c"; +// import boom from "./d"; +// [|barRENAME|](); baz(); bang(); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// <|import { /*START PREFIX*/bar as /*RENAME*/[|barRENAME|] } from "./b";|> +// import baz from "./c"; +// import { default as bang } from "./c"; +// import boom from "./d"; +// [|barRENAME|](); baz(); bang(); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// <|import { /*START PREFIX*/bar as [|barRENAME|] } from "./b";|> +// import baz from "./c"; +// import { default as bang } from "./c"; +// import boom from "./d"; +// /*RENAME*/[|barRENAME|](); baz(); bang(); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// <|import /*RENAME*/[|bazRENAME|] from "./c";|> +// import { default as bang } from "./c"; +// import boom from "./d"; +// bar(); [|bazRENAME|](); bang(); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// <|import [|bazRENAME|] from "./c";|> +// import { default as bang } from "./c"; +// import boom from "./d"; +// bar(); /*RENAME*/[|bazRENAME|](); bang(); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// import baz from "./c"; +// <|import { default as /*RENAME*/[|bangRENAME|] } from "./c";|> +// import boom from "./d"; +// bar(); baz(); [|bangRENAME|](); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// import baz from "./c"; +// <|import { default as [|bangRENAME|] } from "./c";|> +// import boom from "./d"; +// bar(); baz(); /*RENAME*/[|bangRENAME|](); boom(); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// import baz from "./c"; +// import { default as bang } from "./c"; +// <|import /*RENAME*/[|boomRENAME|] from "./d";|> +// bar(); baz(); bang(); [|boomRENAME|](); + + + +// === findRenameLocations === +// === /e.ts === +// import { bar } from "./b"; +// import baz from "./c"; +// import { default as bang } from "./c"; +// <|import [|boomRENAME|] from "./d";|> +// bar(); baz(); bang(); /*RENAME*/[|boomRENAME|](); \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExports2.baseline.jsonc b/tests/baselines/reference/findAllRefsReExports2.baseline.jsonc index 600f16e4ff960..a6d424602f6fd 100644 --- a/tests/baselines/reference/findAllRefsReExports2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExports2.baseline.jsonc @@ -1,185 +1,131 @@ +// === findAllReferences === +// === /a.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](): void {}|> + // === /b.ts === -// import { [|foo|] as [|oof|] } from "./a"; +// <|<|import { [|{| contextId: 1, defId: 0 |}foo|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}oof|] } from "./a";|>|> -// === /a.ts === -// export function /*FIND ALL REFS*/[|foo|](): void {} + // === Definitions === + // === /a.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}foo|](): void {}|> + + // === /b.ts === + // <|import { foo as [|{| defId: 1 |}oof|] } from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "function", - "name": "function foo(): void", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) function oof(): void\nimport oof", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "oof", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "oof", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function oof(): void\nimport oof", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "oof", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "oof", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsReExportsUseInImportType.baseline.jsonc b/tests/baselines/reference/findAllRefsReExportsUseInImportType.baseline.jsonc index 0c80dc6d7d999..9387fecf2c792 100644 --- a/tests/baselines/reference/findAllRefsReExportsUseInImportType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsReExportsUseInImportType.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /foo/types/types.ts === -// export type /*FIND ALL REFS*/[|Full|] = { prop: string; }; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Full|] = { prop: string; };|> // === /app.ts === // import { foo } from './foo/types'; @@ -7,127 +8,91 @@ // type namespaceImport = typeof import('./foo/types'); // type fullType2 = import('./foo/types').foo.[|Full|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/types.ts", - "kind": "type", - "name": "type Full = {\n prop: string;\n}", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Full", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/foo/types/types.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 62, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 164, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /foo/types/types.ts === + // <|export type /*FIND ALL REFS*/[|Full|] = { prop: string; };|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Full = {\n prop: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Full", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo/types/types.ts === -// export type [|Full|] = { prop: string; }; +// <|export type [|{| isWriteAccess: true |}Full|] = { prop: string; };|> // === /app.ts === // import { foo } from './foo/types'; @@ -135,124 +100,91 @@ // type namespaceImport = typeof import('./foo/types'); // type fullType2 = import('./foo/types').foo.[|Full|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/types.ts", - "kind": "type", - "name": "type Full = {\n prop: string;\n}", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Full", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/foo/types/types.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 62, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 164, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } + // === Definitions === + // === /foo/types/types.ts === + // <|export type [|Full|] = { prop: string; };|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Full = {\n prop: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Full", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /foo/types/types.ts === -// export type [|Full|] = { prop: string; }; +// <|export type [|{| isWriteAccess: true |}Full|] = { prop: string; };|> // === /app.ts === // import { foo } from './foo/types'; @@ -260,953 +192,699 @@ // type namespaceImport = typeof import('./foo/types'); // type fullType2 = import('./foo/types').foo./*FIND ALL REFS*/[|Full|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/types.ts", - "kind": "type", - "name": "type Full = {\n prop: string;\n}", - "textSpan": { - "start": 12, - "length": 4 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Full", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 4 - }, - "fileName": "/foo/types/types.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 62, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 164, - "length": 4 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } + // === Definitions === + // === /foo/types/types.ts === + // <|export type [|Full|] = { prop: string; };|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Full = {\n prop: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Full", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /foo/types/index.ts === +// <|import * as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] from './types';|> +// <|export { [|{| defId: 0, isWriteAccess: true |}foo|] };|> // === /app.ts === -// import { [|foo|] } from './foo/types'; -// export type fullType = [|foo|].Full; +// <|import { [|{| defId: 2, isWriteAccess: true |}foo|] } from './foo/types';|> +// export type fullType = [|{| defId: 2 |}foo|].Full; // type namespaceImport = typeof import('./foo/types'); -// type fullType2 = import('./foo/types').[|foo|].Full; +// type fullType2 = import('./foo/types').[|{| defId: 1 |}foo|].Full; -// === /foo/types/index.ts === -// import * as /*FIND ALL REFS*/[|foo|] from './types'; -// export { [|foo|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 32, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /foo/types/index.ts === + // <|import * as /*FIND ALL REFS*/[|{| defId: 0 |}foo|] from './types';|> + // <|export { [|{| defId: 1 |}foo|] };|> + + // === /app.ts === + // <|import { [|{| defId: 2 |}foo|] } from './foo/types';|> + // export type fullType = foo.Full; + // type namespaceImport = typeof import('./foo/types'); + // type fullType2 = import('./foo/types').foo.Full; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "export foo", - "textSpan": { - "start": 41, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 32, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /foo/types/index.ts === +// <|import * as [|{| defId: 0, isWriteAccess: true |}foo|] from './types';|> +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] };|> // === /app.ts === -// import { [|foo|] } from './foo/types'; -// export type fullType = [|foo|].Full; +// <|import { [|{| defId: 2, isWriteAccess: true |}foo|] } from './foo/types';|> +// export type fullType = [|{| defId: 2 |}foo|].Full; // type namespaceImport = typeof import('./foo/types'); -// type fullType2 = import('./foo/types').[|foo|].Full; +// type fullType2 = import('./foo/types').[|{| defId: 1 |}foo|].Full; -// === /foo/types/index.ts === -// import * as [|foo|] from './types'; -// export { /*FIND ALL REFS*/[|foo|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 41, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 32, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /foo/types/index.ts === + // <|import * as [|{| defId: 0 |}foo|] from './types';|> + // <|export { /*FIND ALL REFS*/[|{| defId: 1 |}foo|] };|> + + // === /app.ts === + // <|import { [|{| defId: 2 |}foo|] } from './foo/types';|> + // export type fullType = foo.Full; + // type namespaceImport = typeof import('./foo/types'); + // type fullType2 = import('./foo/types').foo.Full; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "export foo", - "textSpan": { - "start": 41, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 32, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /app.ts === -// import { /*FIND ALL REFS*/[|foo|] } from './foo/types'; -// export type fullType = [|foo|].Full; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|] } from './foo/types';|> +// export type fullType = [|{| defId: 0 |}foo|].Full; // type namespaceImport = typeof import('./foo/types'); -// type fullType2 = import('./foo/types').[|foo|].Full; +// type fullType2 = import('./foo/types').[|{| defId: 2 |}foo|].Full; // === /foo/types/index.ts === -// import * as [|foo|] from './types'; -// export { [|foo|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|import * as [|{| defId: 1, isWriteAccess: true |}foo|] from './types';|> +// <|export { [|{| defId: 1, isWriteAccess: true |}foo|] };|> + + // === Definitions === + // === /app.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}foo|] } from './foo/types';|> + // export type fullType = foo.Full; + // type namespaceImport = typeof import('./foo/types'); + // type fullType2 = import('./foo/types').foo.Full; + + // === /foo/types/index.ts === + // <|import * as [|{| defId: 1 |}foo|] from './types';|> + // <|export { [|{| defId: 2 |}foo|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 41, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 32, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "export foo", - "textSpan": { - "start": 41, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 32, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /app.ts === -// import { [|foo|] } from './foo/types'; -// export type fullType = /*FIND ALL REFS*/[|foo|].Full; +// <|import { [|{| defId: 0, isWriteAccess: true |}foo|] } from './foo/types';|> +// export type fullType = /*FIND ALL REFS*/[|{| defId: 0 |}foo|].Full; // type namespaceImport = typeof import('./foo/types'); -// type fullType2 = import('./foo/types').[|foo|].Full; +// type fullType2 = import('./foo/types').[|{| defId: 2 |}foo|].Full; // === /foo/types/index.ts === -// import * as [|foo|] from './types'; -// export { [|foo|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } +// <|import * as [|{| defId: 1, isWriteAccess: true |}foo|] from './types';|> +// <|export { [|{| defId: 1, isWriteAccess: true |}foo|] };|> + + // === Definitions === + // === /app.ts === + // <|import { [|{| defId: 0 |}foo|] } from './foo/types';|> + // export type fullType = /*FIND ALL REFS*/foo.Full; + // type namespaceImport = typeof import('./foo/types'); + // type fullType2 = import('./foo/types').foo.Full; + + // === /foo/types/index.ts === + // <|import * as [|{| defId: 1 |}foo|] from './types';|> + // <|export { [|{| defId: 2 |}foo|] };|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 32, - "length": 15 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "export foo", - "textSpan": { - "start": 41, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 32, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /foo/types/index.ts === +// <|import * as [|{| defId: 0, isWriteAccess: true |}foo|] from './types';|> +// <|export { [|{| defId: 0, isWriteAccess: true |}foo|] };|> // === /app.ts === -// import { [|foo|] } from './foo/types'; -// export type fullType = [|foo|].Full; +// <|import { [|{| defId: 2, isWriteAccess: true |}foo|] } from './foo/types';|> +// export type fullType = [|{| defId: 2 |}foo|].Full; // type namespaceImport = typeof import('./foo/types'); -// type fullType2 = import('./foo/types')./*FIND ALL REFS*/[|foo|].Full; +// type fullType2 = import('./foo/types')./*FIND ALL REFS*/[|{| defId: 1 |}foo|].Full; -// === /foo/types/index.ts === -// import * as [|foo|] from './types'; -// export { [|foo|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 3 - }, - "fileName": "/foo/types/index.ts", - "contextSpan": { - "start": 32, - "length": 15 - }, - "isWriteAccess": true - } + // === Definitions === + // === /foo/types/index.ts === + // <|import * as [|{| defId: 0 |}foo|] from './types';|> + // <|export { [|{| defId: 1 |}foo|] };|> + + // === /app.ts === + // <|import { [|{| defId: 2 |}foo|] } from './foo/types';|> + // export type fullType = foo.Full; + // type namespaceImport = typeof import('./foo/types'); + // type fullType2 = import('./foo/types')./*FIND ALL REFS*/foo.Full; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/foo/types/index.ts", - "kind": "alias", - "name": "export foo", - "textSpan": { - "start": 41, - "length": 3 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 32, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export foo", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/app.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/app.ts", - "contextSpan": { - "start": 0, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/app.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /foo/types/types.ts === +// <|export type /*RENAME*/[|FullRENAME|] = { prop: string; };|> + +// === /app.ts === +// import { foo } from './foo/types'; +// export type fullType = foo.[|FullRENAME|]; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').foo.[|FullRENAME|]; + + + +// === findRenameLocations === +// === /foo/types/types.ts === +// <|export type [|FullRENAME|] = { prop: string; };|> + +// === /app.ts === +// import { foo } from './foo/types'; +// export type fullType = foo./*RENAME*/[|FullRENAME|]; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').foo.[|FullRENAME|]; + + + +// === findRenameLocations === +// === /foo/types/types.ts === +// <|export type [|FullRENAME|] = { prop: string; };|> + +// === /app.ts === +// import { foo } from './foo/types'; +// export type fullType = foo.[|FullRENAME|]; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').foo./*RENAME*/[|FullRENAME|]; + + + +// === findRenameLocations === +// === /foo/types/index.ts === +// <|import * as /*RENAME*/[|fooRENAME|] from './types';|> +// <|export { [|fooRENAME|] as foo/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /foo/types/index.ts === +// import * as foo from './types'; +// <|export { /*START PREFIX*/foo as /*RENAME*/[|fooRENAME|] };|> + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').[|fooRENAME|].Full; + + + +// === findRenameLocations === +// === /foo/types/index.ts === +// import * as foo from './types'; +// <|export { /*START PREFIX*/foo as [|fooRENAME|] };|> + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types')./*RENAME*/[|fooRENAME|].Full; + + + +// === findRenameLocations === +// === /app.ts === +// <|import { /*START PREFIX*/foo as /*RENAME*/[|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').foo.Full; + + + +// === findRenameLocations === +// === /app.ts === +// <|import { /*START PREFIX*/foo as [|fooRENAME|] } from './foo/types';|> +// export type fullType = /*RENAME*/[|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').foo.Full; + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /app.ts === +// <|import { /*RENAME*/[|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').[|fooRENAME|].Full; + +// === /foo/types/index.ts === +// <|import * as [|fooRENAME|] from './types';|> +// <|export { [|fooRENAME|] };|> + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = /*RENAME*/[|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').[|fooRENAME|].Full; + +// === /foo/types/index.ts === +// <|import * as [|fooRENAME|] from './types';|> +// <|export { [|fooRENAME|] };|> + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /foo/types/index.ts === +// <|import * as [|fooRENAME|] from './types';|> +// <|export { [|fooRENAME|] };|> + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types')./*RENAME*/[|fooRENAME|].Full; + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /foo/types/index.ts === +// <|import * as /*RENAME*/[|fooRENAME|] from './types';|> +// <|export { [|fooRENAME|] };|> + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').[|fooRENAME|].Full; + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /foo/types/index.ts === +// <|import * as [|fooRENAME|] from './types';|> +// <|export { /*RENAME*/[|fooRENAME|] };|> + +// === /app.ts === +// <|import { [|fooRENAME|] } from './foo/types';|> +// export type fullType = [|fooRENAME|].Full; +// type namespaceImport = typeof import('./foo/types'); +// type fullType2 = import('./foo/types').[|fooRENAME|].Full; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsRedeclaredPropertyInDerivedInterface.baseline.jsonc b/tests/baselines/reference/findAllRefsRedeclaredPropertyInDerivedInterface.baseline.jsonc index 49bc6b68dc623..f328e3e94b105 100644 --- a/tests/baselines/reference/findAllRefsRedeclaredPropertyInDerivedInterface.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsRedeclaredPropertyInDerivedInterface.baseline.jsonc @@ -1,811 +1,565 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === // interface A { -// readonly /*FIND ALL REFS*/[|x|]: number | string; +// <|readonly /*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}x|]: number | string;|> // } // interface B extends A { -// readonly [|x|]: number; +// <|readonly [|{| defId: 1 |}x|]: number;|> // } -// const a: A = { [|x|]: 0 }; -// const b: B = { [|x|]: 0 }; +// const a: A = { <|[|{| defId: 0, isWriteAccess: true |}x|]: 0|> }; +// const b: B = { <|[|{| defId: 1, isWriteAccess: true |}x|]: 0|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) A.x: string | number", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 18, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 114, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === + // interface A { + // <|readonly /*FIND ALL REFS*/[|{| defId: 0 |}x|]: number | string;|> + // } + // interface B extends A { + // <|readonly [|{| defId: 1 |}x|]: number;|> + // } + // const a: A = { x: 0 }; + // const b: B = { x: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.x: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) B.x: number", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 77, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 77, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 137, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 137, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === // interface A { -// readonly [|x|]: number | string; +// <|readonly [|{| defId: 0 |}x|]: number | string;|> // } // interface B extends A { -// readonly /*FIND ALL REFS*/[|x|]: number; +// <|readonly /*FIND ALL REFS*/[|{| defId: 1, isDefinition: true |}x|]: number;|> // } -// const a: A = { [|x|]: 0 }; -// const b: B = { [|x|]: 0 }; +// const a: A = { <|[|{| defId: 0, isWriteAccess: true |}x|]: 0|> }; +// const b: B = { <|[|{| defId: 1, isWriteAccess: true |}x|]: 0|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) A.x: string | number", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 18, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 114, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === + // interface A { + // <|readonly [|{| defId: 0 |}x|]: number | string;|> + // } + // interface B extends A { + // <|readonly /*FIND ALL REFS*/[|{| defId: 1 |}x|]: number;|> + // } + // const a: A = { x: 0 }; + // const b: B = { x: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.x: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) B.x: number", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 77, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 77, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 137, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 137, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === // interface A { -// readonly [|x|]: number | string; +// <|readonly [|{| defId: 0 |}x|]: number | string;|> // } // interface B extends A { -// readonly [|x|]: number; +// <|readonly [|{| defId: 1 |}x|]: number;|> // } -// const a: A = { /*FIND ALL REFS*/[|x|]: 0 }; -// const b: B = { [|x|]: 0 }; +// const a: A = { /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|]: 0|> }; +// const b: B = { <|[|{| defId: 1, isWriteAccess: true |}x|]: 0|> }; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === + // interface A { + // <|readonly [|{| defId: 0 |}x|]: number | string;|> + // } + // interface B extends A { + // <|readonly [|{| defId: 1 |}x|]: number;|> + // } + // const a: A = { /*FIND ALL REFS*/x: 0 }; + // const b: B = { x: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) A.x: string | number", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 18, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 114, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.x: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) B.x: number", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 77, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 77, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 137, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 137, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === // interface A { -// readonly [|x|]: number | string; +// <|readonly [|{| defId: 0 |}x|]: number | string;|> // } // interface B extends A { -// readonly [|x|]: number; +// <|readonly [|{| defId: 1 |}x|]: number;|> // } -// const a: A = { [|x|]: 0 }; -// const b: B = { /*FIND ALL REFS*/[|x|]: 0 }; +// const a: A = { <|[|{| defId: 0, isWriteAccess: true |}x|]: 0|> }; +// const b: B = { /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}x|]: 0|> }; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts === + // interface A { + // <|readonly [|{| defId: 0 |}x|]: number | string;|> + // } + // interface B extends A { + // <|readonly [|{| defId: 1 |}x|]: number;|> + // } + // const a: A = { x: 0 }; + // const b: B = { /*FIND ALL REFS*/x: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) A.x: string | number", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 18, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 114, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.x: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "kind": "property", - "name": "(property) B.x: number", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 77, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 77, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 137, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRedeclaredPropertyInDerivedInterface.ts", - "contextSpan": { - "start": 137, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsRenameImportWithSameName.baseline.jsonc b/tests/baselines/reference/findAllRefsRenameImportWithSameName.baseline.jsonc index b5e1dd6574c6c..dc6814e438019 100644 --- a/tests/baselines/reference/findAllRefsRenameImportWithSameName.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsRenameImportWithSameName.baseline.jsonc @@ -1,565 +1,431 @@ +// === findAllReferences === +// === /a.ts === +// <|export const /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] = 0;|> + // === /b.ts === -// import { [|x|] as [|x|] } from "./a"; -// [|x|]; +// <|<|import { [|{| contextId: 1, defId: 0 |}x|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}x|] } from "./a";|>|> +// [|{| defId: 1 |}x|]; -// === /a.ts === -// export const /*FIND ALL REFS*/[|x|] = 0; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export const /*FIND ALL REFS*/[|{| defId: 0 |}x|] = 0;|> + + // === /b.ts === + // <|import { x as [|{| defId: 1 |}x|] } from "./a";|> + // x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] -// === /b.ts === -// import { /*FIND ALL REFS*/[|x|] as [|x|] } from "./a"; -// [|x|]; + +// === findAllReferences === // === /a.ts === -// export const [|x|] = 0; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": false - } +// <|export const [|{| defId: 0, isWriteAccess: true |}x|] = 0;|> + +// === /b.ts === +// <|<|import { /*FIND ALL REFS*/[|{| contextId: 1, defId: 0 |}x|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}x|] } from "./a";|>|> +// [|{| defId: 1 |}x|]; + + // === Definitions === + // === /a.ts === + // <|export const [|{| defId: 0 |}x|] = 0;|> + + // === /b.ts === + // <|import { /*FIND ALL REFS*/x as [|{| defId: 1 |}x|] } from "./a";|> + // x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x as /*FIND ALL REFS*/[|x|] } from "./a"; +// <|import { x as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] } from "./a";|> // [|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b.ts === + // <|import { x as /*FIND ALL REFS*/[|x|] } from "./a";|> + // x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// import { x as [|x|] } from "./a"; +// <|import { x as [|{| isWriteAccess: true |}x|] } from "./a";|> // /*FIND ALL REFS*/[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "alias", - "name": "(alias) const x: 0\nimport x", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /b.ts === + // <|import { x as [|x|] } from "./a";|> + // /*FIND ALL REFS*/x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const x: 0\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|export const /*RENAME*/[|xRENAME|] = 0;|> + +// === /b.ts === +// <|<|import { [|{| contextId: 1 |}xRENAME|] as [|{| contextId: 2 |}xRENAME|] } from "./a";|>|> +// [|xRENAME|]; + + + +// === findRenameLocations === +// === /a.ts === +// <|export const [|xRENAME|] = 0;|> + +// === /b.ts === +// <|<|import { /*RENAME*/[|{| contextId: 1 |}xRENAME|] as [|{| contextId: 2 |}xRENAME|] } from "./a";|>|> +// [|xRENAME|]; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { x as /*RENAME*/[|xRENAME|] } from "./a";|> +// [|xRENAME|]; + + + +// === findRenameLocations === +// === /b.ts === +// <|import { x as [|xRENAME|] } from "./a";|> +// /*RENAME*/[|xRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsRootSymbols.baseline.jsonc b/tests/baselines/reference/findAllRefsRootSymbols.baseline.jsonc index f8cf052e206f3..a60340b46c5fd 100644 --- a/tests/baselines/reference/findAllRefsRootSymbols.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsRootSymbols.baseline.jsonc @@ -1,723 +1,535 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === -// interface I { /*FIND ALL REFS*/[|x|]: {}; } +// interface I { /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}x|]: {};|> } // interface J { x: {}; } // declare const o: (I | J) & { x: string }; -// o.[|x|]; +// o.[|{| defId: 1 |}x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) I.x: {}", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 14, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === + // interface I { /*FIND ALL REFS*/<|[|{| defId: 0 |}<|[|{| defId: 1 |}x|]|]: {};|>|> } + // interface J { x: {}; } + // declare const o: (I | J) & { x: string }; + // o.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.x: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === // interface I { x: {}; } -// interface J { /*FIND ALL REFS*/[|x|]: {}; } +// interface J { /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}x|]: {};|> } // declare const o: (I | J) & { x: string }; -// o.[|x|]; +// o.[|{| defId: 1 |}x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) J.x: {}", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "J", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 37, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 37, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === + // interface I { <|[|{| defId: 1 |}x|]: {};|> } + // interface J { /*FIND ALL REFS*/<|[|{| defId: 0 |}x|]: {};|> } + // declare const o: (I | J) & { x: string }; + // o.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) J.x: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "J", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === // interface I { x: {}; } // interface J { x: {}; } -// declare const o: (I | J) & { /*FIND ALL REFS*/[|x|]: string }; -// o.[|x|]; +// declare const o: (I | J) & { /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|]: string|> }; +// o.[|{| defId: 1 |}x|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === + // interface I { <|[|{| defId: 1 |}x|]: {};|> } + // interface J { x: {}; } + // declare const o: (I | J) & { /*FIND ALL REFS*/<|[|{| defId: 0 |}x|]: string|> }; + // o.x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 75, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 75, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 75, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === -// interface I { [|x|]: {}; } -// interface J { [|x|]: {}; } -// declare const o: (I | J) & { [|x|]: string }; -// o./*FIND ALL REFS*/[|x|]; +// interface I { <|[|{| defId: 0 |}x|]: {};|> } +// interface J { <|[|{| defId: 1 |}x|]: {};|> } +// declare const o: (I | J) & { <|[|{| defId: 2, isWriteAccess: true |}x|]: string|> }; +// o./*FIND ALL REFS*/[|{| defId: 3 |}x|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsRootSymbols.ts === + // interface I { <|[|{| defId: 0 |}<|[|{| defId: 3 |}x|]|]: {};|>|> } + // interface J { <|[|{| defId: 1 |}x|]: {};|> } + // declare const o: (I | J) & { <|[|{| defId: 2 |}x|]: string|> }; + // o./*FIND ALL REFS*/x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) I.x: {}", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 14, - "length": 6 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) I.x: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) J.x: {}", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "J", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 37, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 37, - "length": 6 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) J.x: {}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "J", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 75, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 75, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "contextSpan": { - "start": 75, - "length": 9 - }, - "isWriteAccess": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "kind": "property", - "name": "(property) x: string", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsRootSymbols.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsThisKeyword.baseline.jsonc b/tests/baselines/reference/findAllRefsThisKeyword.baseline.jsonc index 4774df74f2bd1..af55d4aa52429 100644 --- a/tests/baselines/reference/findAllRefsThisKeyword.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsThisKeyword.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // /*FIND ALL REFS*/[|this|]; // function f(this) { @@ -22,61 +23,73 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 0, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // /*FIND ALL REFS*/[|this|]; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; -// function f(/*FIND ALL REFS*/[|this|]) { +// function f(/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}this|]) { // return [|this|]; // function g(this) { return this; } // } @@ -98,79 +111,81 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 36, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(/*FIND ALL REFS*/[|this|]) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; -// function f([|this|]) { +// function f([|{| isWriteAccess: true |}this|]) { // return /*FIND ALL REFS*/[|this|]; // function g(this) { return this; } // } @@ -192,79 +207,83 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f([|this|]) { + // return /*FIND ALL REFS*/this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { // return this; -// function g(/*FIND ALL REFS*/[|this|]) { return [|this|]; } +// function g(/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}this|]) { return [|this|]; } // } // class C { // static x() { @@ -284,81 +303,83 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 57, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 72, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(/*FIND ALL REFS*/[|this|]) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { // return this; -// function g([|this|]) { return /*FIND ALL REFS*/[|this|]; } +// function g([|{| isWriteAccess: true |}this|]) { return /*FIND ALL REFS*/[|this|]; } // } // class C { // static x() { @@ -378,74 +399,78 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 57, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 72, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g([|this|]) { return /*FIND ALL REFS*/this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -470,66 +495,70 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 117, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 160, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // /*FIND ALL REFS*/[|this|]; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -554,66 +583,70 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 160, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 160, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => /*FIND ALL REFS*/[|this|]; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -638,58 +671,62 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 200, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 200, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 241, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // /*FIND ALL REFS*/[|this|]; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -714,58 +751,62 @@ // const x = { this: 0 } // x.this; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 241, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 200, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 241, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => /*FIND ALL REFS*/[|this|]; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { this: 0 } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -787,87 +828,81 @@ // } // } // // These are *not* real uses of the 'this' keyword, they are identifiers. -// const x = { /*FIND ALL REFS*/[|this|]: 0 } +// const x = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}this|]: 0|> } // x.[|this|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "property", - "name": "(property) this: number", - "textSpan": { - "start": 341, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 341, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 341, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "contextSpan": { - "start": 341, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 353, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { /*FIND ALL REFS*/<|[|this|]: 0|> } + // x.this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) this: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === // this; // function f(this) { @@ -889,81 +924,74 @@ // } // } // // These are *not* real uses of the 'this' keyword, they are identifiers. -// const x = { [|this|]: 0 } +// const x = { <|[|{| isWriteAccess: true |}this|]: 0|> } // x./*FIND ALL REFS*/[|this|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "kind": "property", - "name": "(property) this: number", - "textSpan": { - "start": 341, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 341, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 341, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "contextSpan": { - "start": 341, - "length": 7 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 353, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsThisKeyword.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsThisKeyword.ts === + // this; + // function f(this) { + // return this; + // function g(this) { return this; } + // } + // class C { + // static x() { + // this; + // } + // static y() { + // () => this; + // } + // constructor() { + // this; + // } + // method() { + // () => this; + // } + // } + // // These are *not* real uses of the 'this' keyword, they are identifiers. + // const x = { <|[|this|]: 0|> } + // x./*FIND ALL REFS*/this; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) this: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsThisKeywordMultipleFiles.baseline.jsonc b/tests/baselines/reference/findAllRefsThisKeywordMultipleFiles.baseline.jsonc index c1a0121208f5b..b3ebf7c7ef9e3 100644 --- a/tests/baselines/reference/findAllRefsThisKeywordMultipleFiles.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsThisKeywordMultipleFiles.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // /*FIND ALL REFS*/[|this|]; [|this|]; @@ -10,114 +11,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; /*FIND ALL REFS*/[|this|]; @@ -130,114 +68,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -250,114 +125,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -370,114 +182,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -490,114 +239,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = /*FIND ALL REFS*/[|this|], y) => this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -610,114 +296,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => /*FIND ALL REFS*/this)(this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -730,114 +353,51 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(/*FIND ALL REFS*/this, this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // [|this|]; [|this|]; @@ -850,110 +410,44 @@ // // different 'this' // function f(this) { return this; } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file3.ts", - "kind": "var", - "name": "this", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "this", - "kind": "keyword" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 18, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 24, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/file3.ts === + // ((x = [|this|], y) => this)(this, /*FIND ALL REFS*/this); + // // different 'this' + // function f(this) { return this; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsTypeParameterInMergedInterface.baseline.jsonc b/tests/baselines/reference/findAllRefsTypeParameterInMergedInterface.baseline.jsonc index 1df918ad0583b..5bc2779f63322 100644 --- a/tests/baselines/reference/findAllRefsTypeParameterInMergedInterface.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsTypeParameterInMergedInterface.baseline.jsonc @@ -1,423 +1,285 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === -// interface I { a: [|T|] } -// interface I<[|T|]> { b: [|T|] } +// interface I { a: [|T|] } +// interface I<[|{| isWriteAccess: true, isDefinition: true |}T|]> { b: [|T|] } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "kind": "type parameter", - "name": "(type parameter) T in I", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === + // interface I { a: T } + // interface I { b: T } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === -// interface I<[|T|]> { a: /*FIND ALL REFS*/[|T|] } -// interface I<[|T|]> { b: [|T|] } +// interface I<[|{| isWriteAccess: true |}T|]> { a: /*FIND ALL REFS*/[|T|] } +// interface I<[|{| isWriteAccess: true |}T|]> { b: [|T|] } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "kind": "type parameter", - "name": "(type parameter) T in I", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === + // interface I<[|T|]> { a: /*FIND ALL REFS*/T } + // interface I { b: T } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === -// interface I<[|T|]> { a: [|T|] } -// interface I { b: [|T|] } +// interface I<[|{| isWriteAccess: true, isDefinition: true |}T|]> { a: [|T|] } +// interface I { b: [|T|] } + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === + // interface I<[|T|]> { a: T } + // interface I { b: T } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "kind": "type parameter", - "name": "(type parameter) T in I", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === -// interface I<[|T|]> { a: [|T|] } -// interface I<[|T|]> { b: /*FIND ALL REFS*/[|T|] } +// interface I<[|{| isWriteAccess: true |}T|]> { a: [|T|] } +// interface I<[|{| isWriteAccess: true |}T|]> { b: /*FIND ALL REFS*/[|T|] } + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts === + // interface I<[|T|]> { a: T } + // interface I { b: /*FIND ALL REFS*/T } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "kind": "type parameter", - "name": "(type parameter) T in I", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsTypeParameterInMergedInterface.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsTypedef.baseline.jsonc b/tests/baselines/reference/findAllRefsTypedef.baseline.jsonc index 7da4511dc0930..c3e8e461b3f8b 100644 --- a/tests/baselines/reference/findAllRefsTypedef.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsTypedef.baseline.jsonc @@ -1,175 +1,146 @@ -undefined - +// === findAllReferences === // === /a.js === // /** // * @typedef I {Object} -// * @prop /*FIND ALL REFS*/[|p|] {number} +// * /*FIND ALL REFS*/@prop p {number} // */ // // /** @type {I} */ // let x; +// x.p; + + + +// === findAllReferences === +// === /a.js === +// /** +// * @typedef I {Object} +// * <|@prop /*FIND ALL REFS*/[|{| isDefinition: true |}p|] {number} +// |>*/ +// +// /** @type {I} */ +// let x; // x.[|p|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "property", - "name": "(property) p: number", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 30, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** + // * @typedef I {Object} + // * <|@prop /*FIND ALL REFS*/[|p|] {number} + // |>*/ + // + // /** @type {I} */ + // let x; + // x.p; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) p: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** // * @typedef I {Object} -// * @prop [|p|] {number} -// */ +// * <|@prop [|p|] {number} +// |>*/ // // /** @type {I} */ // let x; // x./*FIND ALL REFS*/[|p|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "property", - "name": "(property) p: number", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 30, - "length": 18 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** + // * @typedef I {Object} + // * <|@prop [|p|] {number} + // |>*/ + // + // /** @type {I} */ + // let x; + // x./*FIND ALL REFS*/p; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) p: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsTypedef_importType.baseline.jsonc b/tests/baselines/reference/findAllRefsTypedef_importType.baseline.jsonc index 6da2d765275fe..fc8829d2b1bc3 100644 --- a/tests/baselines/reference/findAllRefsTypedef_importType.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsTypedef_importType.baseline.jsonc @@ -1,165 +1,121 @@ -undefined +// === findAllReferences === +// === /a.js === +// module.exports = 0; +// /** /*FIND ALL REFS*/@typedef {number} Foo */ +// const dummy = 0; + + + +// === findAllReferences === +// === /a.js === +// module.exports = 0; +// /** <|@typedef {number} /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|]|> */ +// const dummy = 0; // === /b.js === // /** @type {import('./a').[|Foo|]} */ // const x = 0; + // === Definitions === + // === /a.js === + // module.exports = 0; + // /** <|@typedef {number} /*FIND ALL REFS*/[|Foo|]|> */ + // const dummy = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Foo = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /a.js === // module.exports = 0; -// /** @typedef {number} /*FIND ALL REFS*/[|Foo|] */ +// /** <|@typedef {number} [|{| isWriteAccess: true |}Foo|]|> */ // const dummy = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type Foo = number", - "textSpan": { - "start": 42, - "length": 3 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 3 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 24, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /b.js === // /** @type {import('./a')./*FIND ALL REFS*/[|Foo|]} */ // const x = 0; -// === /a.js === -// module.exports = 0; -// /** @typedef {number} [|Foo|] */ -// const dummy = 0; + // === Definitions === + // === /a.js === + // module.exports = 0; + // /** <|@typedef {number} [|Foo|]|> */ + // const dummy = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type Foo = number", - "textSpan": { - "start": 42, - "length": 3 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 3 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 24, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/b.js", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Foo = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsTypeofImport.baseline.jsonc b/tests/baselines/reference/findAllRefsTypeofImport.baseline.jsonc index fdff2ea565934..2d6f231cc51e6 100644 --- a/tests/baselines/reference/findAllRefsTypeofImport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsTypeofImport.baseline.jsonc @@ -1,149 +1,105 @@ -undefined +// === findAllReferences === +// === /a.ts === +// /*FIND ALL REFS*/export const x = 0; +// declare const a: typeof import("./a"); +// a.x; + + +// === findAllReferences === // === /a.ts === -// export const /*FIND ALL REFS*/[|x|] = 0; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // declare const a: typeof import("./a"); // a.[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export const /*FIND ALL REFS*/[|x|] = 0;|> + // declare const a: typeof import("./a"); + // a.x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export const [|x|] = 0; +// <|export const [|{| isWriteAccess: true |}x|] = 0;|> // declare const a: typeof import("./a"); // a./*FIND ALL REFS*/[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const x: 0", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export const [|x|] = 0;|> + // declare const a: typeof import("./a"); + // a./*FIND ALL REFS*/x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsUnionProperty.baseline.jsonc b/tests/baselines/reference/findAllRefsUnionProperty.baseline.jsonc index 07534a4e9a5c2..b2b1ccfed396f 100644 --- a/tests/baselines/reference/findAllRefsUnionProperty.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsUnionProperty.baseline.jsonc @@ -1,1471 +1,1032 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { /*FIND ALL REFS*/[|type|]: "a", prop: number } -// | { [|type|]: "b", prop: string }; +// | { /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}type|]: "a",|> prop: number } +// | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; // const tt: T = { -// [|type|]: "a", +// <|[|{| defId: 0, isWriteAccess: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t.[|type|] === "a") { -// t.[|type|]; +// if (t.[|{| defId: 2 |}type|] === "a") { +// t.[|{| defId: 0 |}type|]; // } else { -// t.[|type|]; +// t.[|{| defId: 1 |}type|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { /*FIND ALL REFS*/<|[|{| defId: 0 |}<|[|{| defId: 2 |}type|]|]: "a",|>|> prop: number } + // | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"b\"", - "textSpan": { - "start": 51, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 51, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 51, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 51, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 194, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { [|type|]: "a", prop: number } -// | { /*FIND ALL REFS*/[|type|]: "b", prop: string }; +// | { <|[|{| defId: 0 |}type|]: "a",|> prop: number } +// | { /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}type|]: "b",|> prop: string }; // const tt: T = { -// [|type|]: "a", +// <|[|{| defId: 0, isWriteAccess: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t.[|type|] === "a") { -// t.[|type|]; +// if (t.[|{| defId: 2 |}type|] === "a") { +// t.[|{| defId: 0 |}type|]; // } else { -// t.[|type|]; +// t.[|{| defId: 1 |}type|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { <|[|{| defId: 0 |}<|[|{| defId: 2 |}type|]|]: "a",|>|> prop: number } + // | { /*FIND ALL REFS*/<|[|{| defId: 1 |}type|]: "b",|> prop: string }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"b\"", - "textSpan": { - "start": 51, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 51, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 51, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 51, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 194, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { [|type|]: "a", prop: number } -// | { [|type|]: "b", prop: string }; +// | { <|[|{| defId: 0 |}type|]: "a",|> prop: number } +// | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; // const tt: T = { -// [|type|]: "a", +// <|[|{| defId: 0, isWriteAccess: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t./*FIND ALL REFS*/[|type|] === "a") { -// t.[|type|]; +// if (t./*FIND ALL REFS*/[|{| defId: 2 |}type|] === "a") { +// t.[|{| defId: 0 |}type|]; // } else { -// t.[|type|]; +// t.[|{| defId: 1 |}type|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { <|[|{| defId: 0 |}<|[|{| defId: 2 |}type|]|]: "a",|>|> prop: number } + // | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t./*FIND ALL REFS*/type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"b\"", - "textSpan": { - "start": 51, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 51, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 51, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 51, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { [|type|]: "a", prop: number } -// | { [|type|]: "b", prop: string }; +// | { <|[|{| defId: 0 |}type|]: "a",|> prop: number } +// | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; // const tt: T = { -// [|type|]: "a", +// <|[|{| defId: 0, isWriteAccess: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t.[|type|] === "a") { -// t./*FIND ALL REFS*/[|type|]; +// if (t.[|{| defId: 2 |}type|] === "a") { +// t./*FIND ALL REFS*/[|{| defId: 0 |}type|]; // } else { -// t.[|type|]; +// t.[|{| defId: 1 |}type|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { <|[|{| defId: 0 |}<|[|{| defId: 2 |}type|]|]: "a",|>|> prop: number } + // | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t./*FIND ALL REFS*/type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"b\"", - "textSpan": { - "start": 51, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 51, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 51, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 51, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { [|type|]: "a", prop: number } -// | { [|type|]: "b", prop: string }; +// | { <|[|{| defId: 0 |}type|]: "a",|> prop: number } +// | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; // const tt: T = { -// [|type|]: "a", +// <|[|{| defId: 0, isWriteAccess: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t.[|type|] === "a") { -// t.[|type|]; +// if (t.[|{| defId: 2 |}type|] === "a") { +// t.[|{| defId: 0 |}type|]; // } else { -// t./*FIND ALL REFS*/[|type|]; +// t./*FIND ALL REFS*/[|{| defId: 1 |}type|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { <|[|{| defId: 0 |}<|[|{| defId: 2 |}type|]|]: "a",|>|> prop: number } + // | { <|[|{| defId: 1 |}type|]: "b",|> prop: string }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t./*FIND ALL REFS*/type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"b\"", - "textSpan": { - "start": 51, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 51, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 51, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 51, - "length": 10 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { [|type|]: "a", prop: number } +// | { <|[|{| defId: 0 |}type|]: "a",|> prop: number } // | { type: "b", prop: string }; // const tt: T = { -// /*FIND ALL REFS*/[|type|]: "a", +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}type|]: "a"|>, // prop: 0, // }; // declare const t: T; -// if (t.[|type|] === "a") { -// t.[|type|]; +// if (t.[|{| defId: 1 |}type|] === "a") { +// t.[|{| defId: 0 |}type|]; // } else { // t.type; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 98, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 173, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { <|[|{| defId: 0 |}<|[|{| defId: 1 |}type|]|]: "a",|>|> prop: number } + // | { type: "b", prop: string }; + // const tt: T = { + // /*FIND ALL REFS*/type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) type: \"a\" | \"b\"", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"a\"", - "kind": "stringLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"b\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) type: \"a\" | \"b\"", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"a\"", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { type: "a", /*FIND ALL REFS*/[|prop|]: number } -// | { type: "b", [|prop|]: string }; +// | { type: "a", /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}prop|]: number|> } +// | { type: "b", <|[|{| defId: 1 |}prop|]: string|> }; // const tt: T = { // type: "a", -// [|prop|]: 0, +// <|[|{| defId: 0, isWriteAccess: true |}prop|]: 0|>, // }; // declare const t: T; // if (t.type === "a") { @@ -1474,161 +1035,118 @@ // t.type; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) prop: number", - "textSpan": { - "start": 28, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 28, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 113, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 113, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { type: "a", /*FIND ALL REFS*/<|[|{| defId: 0 |}prop|]: number|> } + // | { type: "b", <|[|{| defId: 1 |}prop|]: string|> }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) prop: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) prop: string", - "textSpan": { - "start": 62, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 62, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 62, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) prop: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { type: "a", [|prop|]: number } -// | { type: "b", /*FIND ALL REFS*/[|prop|]: string }; +// | { type: "a", <|[|{| defId: 0 |}prop|]: number|> } +// | { type: "b", /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}prop|]: string|> }; // const tt: T = { // type: "a", -// [|prop|]: 0, +// <|[|{| defId: 0, isWriteAccess: true |}prop|]: 0|>, // }; // declare const t: T; // if (t.type === "a") { @@ -1637,161 +1155,118 @@ // t.type; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) prop: number", - "textSpan": { - "start": 28, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 28, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 113, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { type: "a", <|[|{| defId: 0 |}prop|]: number|> } + // | { type: "b", /*FIND ALL REFS*/<|[|{| defId: 1 |}prop|]: string|> }; + // const tt: T = { + // type: "a", + // prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) prop: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) prop: string", - "textSpan": { - "start": 62, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 62, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 62, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) prop: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === // type T = -// | { type: "a", [|prop|]: number } +// | { type: "a", <|[|prop|]: number|> } // | { type: "b", prop: string }; // const tt: T = { // type: "a", -// /*FIND ALL REFS*/[|prop|]: 0, +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}prop|]: 0|>, // }; // declare const t: T; // if (t.type === "a") { @@ -1800,84 +1275,62 @@ // t.type; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "kind": "property", - "name": "(property) prop: number", - "textSpan": { - "start": 28, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "prop", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 28, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 113, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnionProperty.ts", - "contextSpan": { - "start": 113, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnionProperty.ts === + // type T = + // | { type: "a", <|[|prop|]: number|> } + // | { type: "b", prop: string }; + // const tt: T = { + // type: "a", + // /*FIND ALL REFS*/prop: 0, + // }; + // declare const t: T; + // if (t.type === "a") { + // t.type; + // } else { + // t.type; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) prop: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "prop", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsUnresolvedSymbols1.baseline.jsonc b/tests/baselines/reference/findAllRefsUnresolvedSymbols1.baseline.jsonc index 6d5783d60bfa7..eee417d768ccc 100644 --- a/tests/baselines/reference/findAllRefsUnresolvedSymbols1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsUnresolvedSymbols1.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: /*FIND ALL REFS*/[|Bar|]; // let b: [|Bar|]; @@ -6,86 +7,66 @@ // let e: Bar.X; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar = /*unresolved*/ any", - "textSpan": { - "start": 7, - "length": 3 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 39, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: /*FIND ALL REFS*/[|Bar|]; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: [|Bar|]; // let b: /*FIND ALL REFS*/[|Bar|]; @@ -94,86 +75,66 @@ // let e: Bar.X; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar = /*unresolved*/ any", - "textSpan": { - "start": 19, - "length": 3 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 39, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: /*FIND ALL REFS*/[|Bar|]; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: [|Bar|]; // let b: [|Bar|]; @@ -182,86 +143,66 @@ // let e: Bar.X; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar = /*unresolved*/ any", - "textSpan": { - "start": 39, - "length": 3 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 39, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: /*FIND ALL REFS*/[|Bar|]; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -270,49 +211,29 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 67, - "length": 3 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 81, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 103, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: /*FIND ALL REFS*/[|Bar|].X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -321,49 +242,29 @@ // let e: /*FIND ALL REFS*/[|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 81, - "length": 3 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 81, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 103, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: /*FIND ALL REFS*/[|Bar|].X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -372,49 +273,29 @@ // let e: [|Bar|].X; // let f: /*FIND ALL REFS*/[|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 103, - "length": 3 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 81, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 103, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: /*FIND ALL REFS*/[|Bar|].X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -423,86 +304,74 @@ // let e: Bar.[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 71, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 85, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar./*FIND ALL REFS*/[|X|]; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -511,86 +380,74 @@ // let e: Bar./*FIND ALL REFS*/[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 85, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 71, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 85, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar./*FIND ALL REFS*/[|X|]; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -599,33 +456,29 @@ // let e: Bar.X; // let f: Bar./*FIND ALL REFS*/[|X|].Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 107, - "length": 1 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 107, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar./*FIND ALL REFS*/[|X|].Y; + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === // let a: Bar; // let b: Bar; @@ -634,82 +487,75 @@ // let e: Bar.X; // let f: Bar.X./*FIND ALL REFS*/[|Y|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "kind": "type", - "name": "type Bar.X.Y = /*unresolved*/ any", - "textSpan": { - "start": 109, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Y", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols1.ts === + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X./*FIND ALL REFS*/[|Y|]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X.Y = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Y", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsUnresolvedSymbols2.baseline.jsonc b/tests/baselines/reference/findAllRefsUnresolvedSymbols2.baseline.jsonc index c0c84cd1decbb..bc4ad3b98c43f 100644 --- a/tests/baselines/reference/findAllRefsUnresolvedSymbols2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsUnresolvedSymbols2.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { /*FIND ALL REFS*/[|Bar|] } from "does-not-exist"; +// <|import { /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -8,111 +9,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { /*FIND ALL REFS*/[|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: /*FIND ALL REFS*/[|Bar|]; // let b: [|Bar|]; @@ -121,104 +57,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: /*FIND ALL REFS*/Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: /*FIND ALL REFS*/[|Bar|]; @@ -227,104 +105,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: /*FIND ALL REFS*/Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -333,104 +153,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: /*FIND ALL REFS*/Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -439,104 +201,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: /*FIND ALL REFS*/Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -545,104 +249,46 @@ // let e: /*FIND ALL REFS*/[|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: /*FIND ALL REFS*/Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === -// import { [|Bar|] } from "does-not-exist"; +// <|import { [|{| isWriteAccess: true |}Bar|] } from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -651,102 +297,44 @@ // let e: [|Bar|].X; // let f: /*FIND ALL REFS*/[|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 37 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "contextSpan": { - "start": 0, - "length": 37 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 46, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 58, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 106, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // <|import { [|Bar|] } from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: /*FIND ALL REFS*/Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === // import { Bar } from "does-not-exist"; // @@ -757,86 +345,76 @@ // let e: Bar.[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 110, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // import { Bar } from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar./*FIND ALL REFS*/[|X|]; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === // import { Bar } from "does-not-exist"; // @@ -847,86 +425,76 @@ // let e: Bar./*FIND ALL REFS*/[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 124, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // import { Bar } from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar./*FIND ALL REFS*/[|X|]; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === // import { Bar } from "does-not-exist"; // @@ -937,33 +505,31 @@ // let e: Bar.X; // let f: Bar./*FIND ALL REFS*/[|X|].Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 146, - "length": 1 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 146, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // import { Bar } from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar./*FIND ALL REFS*/[|X|].Y; + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === // import { Bar } from "does-not-exist"; // @@ -974,82 +540,77 @@ // let e: Bar.X; // let f: Bar.X./*FIND ALL REFS*/[|Y|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "kind": "type", - "name": "type Bar.X.Y = /*unresolved*/ any", - "textSpan": { - "start": 148, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Y", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 148, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols2.ts === + // import { Bar } from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X./*FIND ALL REFS*/[|Y|]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X.Y = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Y", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsUnresolvedSymbols3.baseline.jsonc b/tests/baselines/reference/findAllRefsUnresolvedSymbols3.baseline.jsonc index 567d37d2aa8c1..6eee5e1933ec0 100644 --- a/tests/baselines/reference/findAllRefsUnresolvedSymbols3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsUnresolvedSymbols3.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as /*FIND ALL REFS*/[|Bar|] from "does-not-exist"; +// <|import * as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -8,111 +9,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as /*FIND ALL REFS*/[|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: /*FIND ALL REFS*/[|Bar|]; // let b: [|Bar|]; @@ -121,104 +57,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: /*FIND ALL REFS*/Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: /*FIND ALL REFS*/[|Bar|]; @@ -227,104 +105,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: /*FIND ALL REFS*/Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -333,104 +153,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: /*FIND ALL REFS*/Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -439,104 +201,46 @@ // let e: [|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: /*FIND ALL REFS*/Bar.X; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -545,104 +249,46 @@ // let e: /*FIND ALL REFS*/[|Bar|].X; // let f: [|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: /*FIND ALL REFS*/Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === -// import * as [|Bar|] from "does-not-exist"; +// <|import * as [|{| isWriteAccess: true |}Bar|] from "does-not-exist";|> // // let a: [|Bar|]; // let b: [|Bar|]; @@ -651,102 +297,44 @@ // let e: [|Bar|].X; // let f: /*FIND ALL REFS*/[|Bar|].X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "alias", - "name": "import Bar", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 59, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 121, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 143, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // <|import * as [|Bar|] from "does-not-exist";|> + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: /*FIND ALL REFS*/Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import Bar", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === // import * as Bar from "does-not-exist"; // @@ -757,86 +345,76 @@ // let e: Bar.[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 111, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 111, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 125, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // import * as Bar from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar./*FIND ALL REFS*/[|X|]; + // let e: Bar.X; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === // import * as Bar from "does-not-exist"; // @@ -847,86 +425,76 @@ // let e: Bar./*FIND ALL REFS*/[|X|]; // let f: Bar.X.Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "type", - "name": "type Bar.X = /*unresolved*/ any", - "textSpan": { - "start": 125, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 111, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 125, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // import * as Bar from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar./*FIND ALL REFS*/[|X|]; + // let f: Bar.X.Y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === // import * as Bar from "does-not-exist"; // @@ -937,33 +505,31 @@ // let e: Bar.X; // let f: Bar./*FIND ALL REFS*/[|X|].Y; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "type", - "name": "", - "textSpan": { - "start": 147, - "length": 1 - }, - "displayParts": [] - }, - "references": [ - { - "textSpan": { - "start": 147, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } - ] - } -] + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // import * as Bar from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar./*FIND ALL REFS*/[|X|].Y; + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "", + "displayParts": [] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === // import * as Bar from "does-not-exist"; // @@ -974,82 +540,77 @@ // let e: Bar.X; // let f: Bar.X./*FIND ALL REFS*/[|Y|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "kind": "type", - "name": "type Bar.X.Y = /*unresolved*/ any", - "textSpan": { - "start": 149, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Bar", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "X", - "kind": "aliasName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Y", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "/*unresolved*/", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsUnresolvedSymbols3.ts === + // import * as Bar from "does-not-exist"; + // + // let a: Bar; + // let b: Bar; + // let c: Bar; + // let d: Bar.X; + // let e: Bar.X; + // let f: Bar.X./*FIND ALL REFS*/[|Y|]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Bar.X.Y = /*unresolved*/ any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "X", + "kind": "aliasName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Y", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "/*unresolved*/", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames1.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames1.baseline.jsonc index 9514041cf6613..164a3862955af 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames1.baseline.jsonc @@ -1,303 +1,237 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === // class Foo { -// /*FIND ALL REFS*/public [|_bar|]() { return 0; } +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}_bar|]() { return 0; }|> // } // // var x: Foo; // x.[|_bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "kind": "method", - "name": "(method) Foo._bar(): number", - "textSpan": { - "start": 23, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "_bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "contextSpan": { - "start": 16, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 61, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === + // class Foo { + // /*FIND ALL REFS*/<|public [|_bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x._bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo._bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "_bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === // class Foo { -// public /*FIND ALL REFS*/[|_bar|]() { return 0; } +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}_bar|]() { return 0; }|> // } // // var x: Foo; // x.[|_bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "kind": "method", - "name": "(method) Foo._bar(): number", - "textSpan": { - "start": 23, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "_bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "contextSpan": { - "start": 16, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 61, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === + // class Foo { + // <|public /*FIND ALL REFS*/[|_bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x._bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo._bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "_bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === // class Foo { -// public [|_bar|]() { return 0; } +// <|public [|{| isWriteAccess: true |}_bar|]() { return 0; }|> // } // // var x: Foo; // x./*FIND ALL REFS*/[|_bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "kind": "method", - "name": "(method) Foo._bar(): number", - "textSpan": { - "start": 23, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "_bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "contextSpan": { - "start": 16, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 61, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames1.ts === + // class Foo { + // <|public [|_bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x./*FIND ALL REFS*/_bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo._bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "_bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames2.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames2.baseline.jsonc index 5d2e473dacb67..d00e62e39d049 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames2.baseline.jsonc @@ -1,303 +1,237 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === // class Foo { -// /*FIND ALL REFS*/public [|__bar|]() { return 0; } +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}__bar|]() { return 0; }|> // } // // var x: Foo; // x.[|__bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "kind": "method", - "name": "(method) Foo.__bar(): number", - "textSpan": { - "start": 23, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "contextSpan": { - "start": 16, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 62, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === + // class Foo { + // /*FIND ALL REFS*/<|public [|__bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.__bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.__bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === // class Foo { -// public /*FIND ALL REFS*/[|__bar|]() { return 0; } +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}__bar|]() { return 0; }|> // } // // var x: Foo; // x.[|__bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "kind": "method", - "name": "(method) Foo.__bar(): number", - "textSpan": { - "start": 23, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "contextSpan": { - "start": 16, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 62, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === + // class Foo { + // <|public /*FIND ALL REFS*/[|__bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.__bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.__bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === // class Foo { -// public [|__bar|]() { return 0; } +// <|public [|{| isWriteAccess: true |}__bar|]() { return 0; }|> // } // // var x: Foo; // x./*FIND ALL REFS*/[|__bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "kind": "method", - "name": "(method) Foo.__bar(): number", - "textSpan": { - "start": 23, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "contextSpan": { - "start": 16, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 62, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames2.ts === + // class Foo { + // <|public [|__bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x./*FIND ALL REFS*/__bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.__bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames3.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames3.baseline.jsonc index 22b02e74bfb3b..644b220d55121 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames3.baseline.jsonc @@ -1,303 +1,237 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === // class Foo { -// /*FIND ALL REFS*/public [|___bar|]() { return 0; } +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}___bar|]() { return 0; }|> // } // // var x: Foo; // x.[|___bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "kind": "method", - "name": "(method) Foo.___bar(): number", - "textSpan": { - "start": 23, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "contextSpan": { - "start": 16, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 63, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === + // class Foo { + // /*FIND ALL REFS*/<|public [|___bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.___bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.___bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === // class Foo { -// public /*FIND ALL REFS*/[|___bar|]() { return 0; } +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}___bar|]() { return 0; }|> // } // // var x: Foo; // x.[|___bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "kind": "method", - "name": "(method) Foo.___bar(): number", - "textSpan": { - "start": 23, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "contextSpan": { - "start": 16, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 63, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === + // class Foo { + // <|public /*FIND ALL REFS*/[|___bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.___bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.___bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === // class Foo { -// public [|___bar|]() { return 0; } +// <|public [|{| isWriteAccess: true |}___bar|]() { return 0; }|> // } // // var x: Foo; // x./*FIND ALL REFS*/[|___bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "kind": "method", - "name": "(method) Foo.___bar(): number", - "textSpan": { - "start": 23, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "contextSpan": { - "start": 16, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 63, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames3.ts === + // class Foo { + // <|public [|___bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x./*FIND ALL REFS*/___bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.___bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames4.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames4.baseline.jsonc index a6e362c265320..47c5b7e6d9adc 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames4.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames4.baseline.jsonc @@ -1,303 +1,237 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === // class Foo { -// /*FIND ALL REFS*/public [|____bar|]() { return 0; } +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}____bar|]() { return 0; }|> // } // // var x: Foo; // x.[|____bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "kind": "method", - "name": "(method) Foo.____bar(): number", - "textSpan": { - "start": 23, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "____bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "contextSpan": { - "start": 16, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 64, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === + // class Foo { + // /*FIND ALL REFS*/<|public [|____bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.____bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "____bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === // class Foo { -// public /*FIND ALL REFS*/[|____bar|]() { return 0; } +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}____bar|]() { return 0; }|> // } // // var x: Foo; // x.[|____bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "kind": "method", - "name": "(method) Foo.____bar(): number", - "textSpan": { - "start": 23, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "____bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "contextSpan": { - "start": 16, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 64, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === + // class Foo { + // <|public /*FIND ALL REFS*/[|____bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.____bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "____bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === // class Foo { -// public [|____bar|]() { return 0; } +// <|public [|{| isWriteAccess: true |}____bar|]() { return 0; }|> // } // // var x: Foo; // x./*FIND ALL REFS*/[|____bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "kind": "method", - "name": "(method) Foo.____bar(): number", - "textSpan": { - "start": 23, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "____bar", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "contextSpan": { - "start": 16, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 64, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames4.ts === + // class Foo { + // <|public [|____bar|]() { return 0; }|> + // } + // + // var x: Foo; + // x./*FIND ALL REFS*/____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.____bar(): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "____bar", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames5.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames5.baseline.jsonc index eab549ba8d46b..330cbb8ee43f3 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames5.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames5.baseline.jsonc @@ -1,8 +1,9 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === // class Foo { // public _bar; // public __bar; -// /*FIND ALL REFS*/public [|___bar|]; +// /*FIND ALL REFS*/<|public [|{| isDefinition: true |}___bar|];|> // public ____bar; // } // @@ -12,97 +13,81 @@ // x.[|___bar|]; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "kind": "property", - "name": "(property) Foo.___bar: any", - "textSpan": { - "start": 58, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "contextSpan": { - "start": 51, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === + // class Foo { + // public _bar; + // public __bar; + // /*FIND ALL REFS*/<|public [|___bar|];|> + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x.__bar; + // x.___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.___bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === // class Foo { // public _bar; // public __bar; -// public /*FIND ALL REFS*/[|___bar|]; +// <|public /*FIND ALL REFS*/[|{| isDefinition: true |}___bar|];|> // public ____bar; // } // @@ -112,97 +97,81 @@ // x.[|___bar|]; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "kind": "property", - "name": "(property) Foo.___bar: any", - "textSpan": { - "start": 58, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "contextSpan": { - "start": 51, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === + // class Foo { + // public _bar; + // public __bar; + // <|public /*FIND ALL REFS*/[|___bar|];|> + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x.__bar; + // x.___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.___bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === // class Foo { // public _bar; // public __bar; -// public [|___bar|]; +// <|public [|___bar|];|> // public ____bar; // } // @@ -212,86 +181,69 @@ // x./*FIND ALL REFS*/[|___bar|]; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "kind": "property", - "name": "(property) Foo.___bar: any", - "textSpan": { - "start": 58, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "___bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "contextSpan": { - "start": 51, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 120, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames5.ts === + // class Foo { + // public _bar; + // public __bar; + // <|public [|___bar|];|> + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x.__bar; + // x./*FIND ALL REFS*/___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.___bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "___bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames6.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames6.baseline.jsonc index ab5ddc4139cd2..30255cc2aada8 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames6.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames6.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === // class Foo { // public _bar; -// /*FIND ALL REFS*/public [|__bar|]; +// /*FIND ALL REFS*/<|public [|{| isDefinition: true |}__bar|];|> // public ___bar; // public ____bar; // } @@ -12,96 +13,80 @@ // x.___bar; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "kind": "property", - "name": "(property) Foo.__bar: any", - "textSpan": { - "start": 40, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 111, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === + // class Foo { + // public _bar; + // /*FIND ALL REFS*/<|public [|__bar|];|> + // public ___bar; + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x.__bar; + // x.___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.__bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === // class Foo { // public _bar; -// public /*FIND ALL REFS*/[|__bar|]; +// <|public /*FIND ALL REFS*/[|{| isDefinition: true |}__bar|];|> // public ___bar; // public ____bar; // } @@ -112,96 +97,80 @@ // x.___bar; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "kind": "property", - "name": "(property) Foo.__bar: any", - "textSpan": { - "start": 40, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 111, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === + // class Foo { + // public _bar; + // <|public /*FIND ALL REFS*/[|__bar|];|> + // public ___bar; + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x.__bar; + // x.___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.__bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === // class Foo { // public _bar; -// public [|__bar|]; +// <|public [|__bar|];|> // public ___bar; // public ____bar; // } @@ -212,86 +181,69 @@ // x.___bar; // x.____bar; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "kind": "property", - "name": "(property) Foo.__bar: any", - "textSpan": { - "start": 40, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "__bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 111, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames6.ts === + // class Foo { + // public _bar; + // <|public [|__bar|];|> + // public ___bar; + // public ____bar; + // } + // + // var x: Foo; + // x._bar; + // x./*FIND ALL REFS*/__bar; + // x.___bar; + // x.____bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.__bar: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "__bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames7.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames7.baseline.jsonc index dfd77ec94b0f6..7ef014e6f6589 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames7.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames7.baseline.jsonc @@ -1,246 +1,171 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === -// /*FIND ALL REFS*/function [|__foo|]() { +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}__foo|]() { // [|__foo|](); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "kind": "function", - "name": "function __foo(): void", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === + // /*FIND ALL REFS*/<|function [|__foo|]() { + // __foo(); + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function __foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === -// function /*FIND ALL REFS*/[|__foo|]() { +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}__foo|]() { // [|__foo|](); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === + // <|function /*FIND ALL REFS*/[|__foo|]() { + // __foo(); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "kind": "function", - "name": "function __foo(): void", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function __foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === -// function [|__foo|]() { +// <|function [|{| isWriteAccess: true |}__foo|]() { // /*FIND ALL REFS*/[|__foo|](); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts === + // <|function [|__foo|]() { + // /*FIND ALL REFS*/__foo(); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "kind": "function", - "name": "function __foo(): void", - "textSpan": { - "start": 9, - "length": 5 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames7.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function __foo(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames8.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames8.baseline.jsonc index 8b3efb6684234..2d51417ad1154 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames8.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames8.baseline.jsonc @@ -1,268 +1,195 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === -// (/*FIND ALL REFS*/function [|__foo|]() { +// (/*FIND ALL REFS*/<|function [|{| isWriteAccess: true |}__foo|]() { // [|__foo|](); -// }) +// }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "kind": "local function", - "name": "(local function) __foo(): void", - "textSpan": { - "start": 10, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "contextSpan": { - "start": 1, - "length": 33 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === + // (/*FIND ALL REFS*/<|function [|__foo|]() { + // __foo(); + // }|>) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) __foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === -// (function /*FIND ALL REFS*/[|__foo|]() { +// (<|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}__foo|]() { // [|__foo|](); -// }) +// }|>) + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === + // (<|function /*FIND ALL REFS*/[|__foo|]() { + // __foo(); + // }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "kind": "local function", - "name": "(local function) __foo(): void", - "textSpan": { - "start": 10, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "contextSpan": { - "start": 1, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 24, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) __foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === -// (function [|__foo|]() { +// (<|function [|{| isWriteAccess: true |}__foo|]() { // /*FIND ALL REFS*/[|__foo|](); -// }) +// }|>) + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts === + // (<|function [|__foo|]() { + // /*FIND ALL REFS*/__foo(); + // }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "kind": "local function", - "name": "(local function) __foo(): void", - "textSpan": { - "start": 10, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "__foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "contextSpan": { - "start": 1, - "length": 33 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 24, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames8.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) __foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "__foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames9.baseline.jsonc b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames9.baseline.jsonc index 81739bde79b2c..9745f0b0b9ff5 100644 --- a/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames9.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithLeadingUnderscoreNames9.baseline.jsonc @@ -1,268 +1,195 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === -// (/*FIND ALL REFS*/function [|___foo|]() { +// (/*FIND ALL REFS*/<|function [|{| isWriteAccess: true |}___foo|]() { // [|___foo|](); -// }) +// }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "kind": "local function", - "name": "(local function) ___foo(): void", - "textSpan": { - "start": 10, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "___foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "contextSpan": { - "start": 1, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === + // (/*FIND ALL REFS*/<|function [|___foo|]() { + // ___foo(); + // }|>) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) ___foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "___foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === -// (function /*FIND ALL REFS*/[|___foo|]() { +// (<|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}___foo|]() { // [|___foo|](); -// }) +// }|>) + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === + // (<|function /*FIND ALL REFS*/[|___foo|]() { + // ___foo(); + // }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "kind": "local function", - "name": "(local function) ___foo(): void", - "textSpan": { - "start": 10, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "___foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "contextSpan": { - "start": 1, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 25, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) ___foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "___foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === -// (function [|___foo|]() { +// (<|function [|{| isWriteAccess: true |}___foo|]() { // /*FIND ALL REFS*/[|___foo|](); -// }) +// }|>) + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts === + // (<|function [|___foo|]() { + // /*FIND ALL REFS*/___foo(); + // }|>) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "kind": "local function", - "name": "(local function) ___foo(): void", - "textSpan": { - "start": 10, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local function", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "___foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "contextSpan": { - "start": 1, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithLeadingUnderscoreNames9.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local function", + "name": "(local function) ___foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "___foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment.baseline.jsonc b/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment.baseline.jsonc index 9c199a89f3e3d..72741da8915ce 100644 --- a/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment.baseline.jsonc @@ -1,463 +1,325 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === -// var /*FIND ALL REFS*/[|name|] = "Foo"; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}name|] = "Foo";|> // -// var obj = { [|name|] }; +// var obj = { [|{| isWriteAccess: true |}name|] }; // var obj1 = { name: [|name|] }; // obj.name; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "var", - "name": "var name: string", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === + // <|var /*FIND ALL REFS*/[|name|] = "Foo";|> + // + // var obj = { name }; + // var obj1 = { name: name }; + // obj.name; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var name: string", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === -// var [|name|] = "Foo"; +// <|var [|{| isWriteAccess: true |}name|] = "Foo";|> // -// var obj = { [|name|] }; +// var obj = { [|{| isWriteAccess: true |}name|] }; // var obj1 = { name: /*FIND ALL REFS*/[|name|] }; // obj.name; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "var", - "name": "var name: string", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === + // <|var [|name|] = "Foo";|> + // + // var obj = { name }; + // var obj1 = { name: /*FIND ALL REFS*/name }; + // obj.name; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var name: string", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === -// var [|name|] = "Foo"; +// <|var [|{| defId: 0, isWriteAccess: true |}name|] = "Foo";|> // -// var obj = { /*FIND ALL REFS*/[|name|] }; -// var obj1 = { name: [|name|] }; -// obj.[|name|]; +// var obj = { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}name|] }; +// var obj1 = { name: [|{| defId: 0 |}name|] }; +// obj.[|{| defId: 1 |}name|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "var", - "name": "var name: string", - "textSpan": { - "start": 4, - "length": 4 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 31, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 58, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === + // <|var [|{| defId: 0 |}name|] = "Foo";|> + // + // var obj = { /*FIND ALL REFS*/[|{| defId: 1 |}name|] }; + // var obj1 = { name: name }; + // obj.name; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var name: string", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "property", - "name": "(property) name: string", - "textSpan": { - "start": 31, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) name: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === // var name = "Foo"; // // var obj = { name }; -// var obj1 = { /*FIND ALL REFS*/[|name|]: name }; +// var obj1 = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}name|]: name|> }; // obj.name; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "property", - "name": "(property) name: string", - "textSpan": { - "start": 52, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 52, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "contextSpan": { - "start": 52, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === + // var name = "Foo"; + // + // var obj = { name }; + // var obj1 = { /*FIND ALL REFS*/<|[|name|]: name|> }; + // obj.name; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) name: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === // var name = "Foo"; // -// var obj = { [|name|] }; +// var obj = { [|{| isWriteAccess: true |}name|] }; // var obj1 = { name: name }; // obj./*FIND ALL REFS*/[|name|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "kind": "property", - "name": "(property) name: string", - "textSpan": { - "start": 31, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment.ts === + // var name = "Foo"; + // + // var obj = { [|name|] }; + // var obj1 = { name: name }; + // obj./*FIND ALL REFS*/name; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) name: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment2.baseline.jsonc b/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment2.baseline.jsonc index 597ddfb7d9c15..c3451b3e6c31d 100644 --- a/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWithShorthandPropertyAssignment2.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === -// var /*FIND ALL REFS*/[|dx|] = "Foo"; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}dx|] = "Foo";|> // // module M { export var dx; } // module M { @@ -8,375 +9,295 @@ // } // M.y.dx; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "kind": "var", - "name": "var dx: string", - "textSpan": { - "start": 4, - "length": 2 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "dx", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === + // <|var /*FIND ALL REFS*/[|dx|] = "Foo";|> + // + // module M { export var dx; } + // module M { + // var z = 100; + // export var y = { dx, z }; + // } + // M.y.dx; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var dx: string", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "dx", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === // var dx = "Foo"; // -// module M { export var /*FIND ALL REFS*/[|dx|]; } +// module M { <|export var /*FIND ALL REFS*/[|{| isDefinition: true |}dx|];|> } // module M { // var z = 100; -// export var y = { [|dx|], z }; +// export var y = { [|{| isWriteAccess: true |}dx|], z }; // } // M.y.dx; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "kind": "var", - "name": "var M.dx: any", - "textSpan": { - "start": 39, - "length": 2 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "dx", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 39, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 92, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === + // var dx = "Foo"; + // + // module M { <|export var /*FIND ALL REFS*/[|dx|];|> } + // module M { + // var z = 100; + // export var y = { dx, z }; + // } + // M.y.dx; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var M.dx: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "dx", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === // var dx = "Foo"; // -// module M { export var [|dx|]; } +// module M { <|export var [|{| defId: 0 |}dx|];|> } // module M { // var z = 100; -// export var y = { /*FIND ALL REFS*/[|dx|], z }; +// export var y = { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}dx|], z }; // } -// M.y.[|dx|]; +// M.y.[|{| defId: 1 |}dx|]; + + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === + // var dx = "Foo"; + // + // module M { <|export var [|{| defId: 0 |}dx|];|> } + // module M { + // var z = 100; + // export var y = { /*FIND ALL REFS*/[|{| defId: 1 |}dx|], z }; + // } + // M.y.dx; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "kind": "var", - "name": "var M.dx: any", - "textSpan": { - "start": 39, - "length": 2 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "dx", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 39, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 92, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var M.dx: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "dx", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "kind": "property", - "name": "(property) dx: any", - "textSpan": { - "start": 92, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "dx", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 107, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) dx: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "dx", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === // var dx = "Foo"; // // module M { export var dx; } // module M { // var z = 100; -// export var y = { [|dx|], z }; +// export var y = { [|{| isWriteAccess: true |}dx|], z }; // } // M.y./*FIND ALL REFS*/[|dx|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "kind": "property", - "name": "(property) dx: any", - "textSpan": { - "start": 92, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "dx", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 92, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 107, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWithShorthandPropertyAssignment2.ts === + // var dx = "Foo"; + // + // module M { export var dx; } + // module M { + // var z = 100; + // export var y = { [|dx|], z }; + // } + // M.y./*FIND ALL REFS*/dx; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) dx: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "dx", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsWriteAccess.baseline.jsonc b/tests/baselines/reference/findAllRefsWriteAccess.baseline.jsonc index 8a77f4e0fe04b..31bd93875deb6 100644 --- a/tests/baselines/reference/findAllRefsWriteAccess.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsWriteAccess.baseline.jsonc @@ -1,14 +1,15 @@ +// === findAllReferences === // === /tests/cases/fourslash/findAllRefsWriteAccess.ts === // interface Obj { -// [`/*FIND ALL REFS*/[|num|]`]: number; +// <|[`/*FIND ALL REFS*/[|{| isDefinition: true |}num|]`]: number;|> // } // // let o: Obj = { -// [`[|num|]`]: 0 +// <|[`[|{| isWriteAccess: true |}num|]`]: 0|> // }; // // o = { -// ['[|num|]']: 1 +// <|['[|{| isWriteAccess: true |}num|]']: 1|> // }; // // o['[|num|]'] = 2; @@ -17,145 +18,78 @@ // o['[|num|]']; // o[`[|num|]`]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "kind": "property", - "name": "(property) Obj[`num`]: number", - "textSpan": { - "start": 22, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Obj", - "kind": "interfaceName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "`num`", - "kind": "propertyName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "contextSpan": { - "start": 20, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 61, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "contextSpan": { - "start": 59, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "contextSpan": { - "start": 84, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 102, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 116, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 131, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/findAllRefsWriteAccess.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/findAllRefsWriteAccess.ts === + // interface Obj { + // <|[`/*FIND ALL REFS*/[|num|]`]: number;|> + // } + // + // let o: Obj = { + // [`num`]: 0 + // }; + // + // o = { + // ['num']: 1 + // }; + // + // o['num'] = 2; + // o[`num`] = 3; + // + // o['num']; + // o[`num`]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Obj[`num`]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Obj", + "kind": "interfaceName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "`num`", + "kind": "propertyName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc index 6ba2c7d44a87c..bd7279c9ebebc 100644 --- a/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc @@ -1,800 +1,503 @@ +// === findAllReferences === // === /a.ts === -// type /*FIND ALL REFS*/[|T|] = number; +// <|type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> // namespace T { // export type U = string; // } -// export = [|T|]; +// <|export = [|T|];|> // === /b.ts === -// const x: import("[|./a|]") = 0; +// <|const x: import("[|./a|]") = 0;|> // const y: import("./a").U = ""; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number\nnamespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|type /*FIND ALL REFS*/[|T|] = number;|> + // namespace T { + // export type U = string; + // } + // export = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number\nnamespace T", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // type T = number; -// namespace /*FIND ALL REFS*/[|T|] { +// <|namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] { // export type U = string; -// } -// export = [|T|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "namespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } +// }|> +// <|export = [|T|];|> + + // === Definitions === + // === /a.ts === + // <|type [|T|] = number;|> + // namespace /*FIND ALL REFS*/T { + // export type U = string; + // } + // export = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "namespace T", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// type [|T|] = number; -// namespace [|T|] { +// <|type [|{| isWriteAccess: true |}T|] = number;|> +// <|namespace [|{| isWriteAccess: true |}T|] { // export type U = string; -// } -// export = /*FIND ALL REFS*/[|T|]; +// }|> +// <|export = /*FIND ALL REFS*/[|T|];|> // === /b.ts === -// const x: import("[|./a|]") = 0; +// <|const x: import("[|./a|]") = 0;|> // const y: import("./a").U = ""; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number\nnamespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|type [|T|] = number;|> + // namespace T { + // export type U = string; + // } + // export = /*FIND ALL REFS*/T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number\nnamespace T", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /b.ts === +// <|const x: import("/*FIND ALL REFS*/[|{| defId: 1 |}./a|]") = 0;|> +// <|const y: import("[|{| defId: 0 |}./a|]").U = "";|> // === /a.ts === -// type [|T|] = number; -// namespace [|T|] { +// <|type [|{| defId: 1, isWriteAccess: true |}T|] = number;|> +// <|namespace [|{| defId: 1, isWriteAccess: true |}T|] { // export type U = string; -// } -// [|export|] = [|T|]; +// }|> +// <|[|{| defId: 0 |}<|export|] = [|{| contextId: 5, defId: 1 |}T|];|>|> -// === /b.ts === -// const x: import("/*FIND ALL REFS*/[|./a|]") = 0; -// const y: import("[|./a|]").U = ""; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 72 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 28, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 61, - "length": 6 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|{| defId: 0 |}<|type [|{| defId: 1 |}T|] = number;|> + // namespace T { + // export type U = string; + // } + // export = T;|] + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number\nnamespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number\nnamespace T", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /b.ts === +// <|const x: import("[|{| defId: 1 |}./a|]") = 0;|> +// <|const y: import("/*FIND ALL REFS*/[|{| defId: 0 |}./a|]").U = "";|> // === /a.ts === -// type [|T|] = number; -// namespace [|T|] { +// <|type [|{| defId: 1, isWriteAccess: true |}T|] = number;|> +// <|namespace [|{| defId: 1, isWriteAccess: true |}T|] { // export type U = string; -// } -// [|export|] = [|T|]; +// }|> +// <|[|{| defId: 0 |}<|export|] = [|{| contextId: 5, defId: 1 |}T|];|>|> -// === /b.ts === -// const x: import("[|./a|]") = 0; -// const y: import("/*FIND ALL REFS*/[|./a|]").U = ""; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 72 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 28, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 61, - "length": 6 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|{| defId: 0 |}<|type [|{| defId: 1 |}T|] = number;|> + // namespace T { + // export type U = string; + // } + // export = T;|] + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number\nnamespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number\nnamespace T", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// type [|T|] = number; -// namespace [|T|] { +// <|type [|{| isWriteAccess: true |}T|] = number;|> +// <|namespace [|{| isWriteAccess: true |}T|] { // export type U = string; -// } -// /*FIND ALL REFS*/export = [|T|]; +// }|> +// /*FIND ALL REFS*/<|export = [|T|];|> // === /b.ts === -// const x: import("[|./a|]") = 0; +// <|const x: import("[|./a|]") = 0;|> // const y: import("./a").U = ""; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number\nnamespace T", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 16 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 17, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 61, - "length": 11 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 27 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|type [|T|] = number;|> + // namespace T { + // export type U = string; + // } + // /*FIND ALL REFS*/export = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number\nnamespace T", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /a.ts === +// <|type /*RENAME*/[|TRENAME|] = number;|> +// namespace T { +// export type U = string; +// } +// <|export = [|TRENAME|];|> + + + +// === findRenameLocations === +// === /a.ts === +// type T = number; +// <|namespace /*RENAME*/[|TRENAME|] { +// export type U = string; +// }|> +// <|export = [|TRENAME|];|> + + + +// === findRenameLocations === +// === /a.ts === +// <|type [|TRENAME|] = number;|> +// <|namespace [|TRENAME|] { +// export type U = string; +// }|> +// <|export = /*RENAME*/[|TRENAME|];|> \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc index 194d24ed3ed52..1170886f836b0 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc @@ -1,168 +1,125 @@ +// === findAllReferences === +// === /a.js === +// module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}C|] {}|>; +// module.exports.D = class D {}; + // === /b.js === -// /** @type {import("[|./a|]")} */ +// /** <|@type {import("[|{| defId: 1 |}./a|]")} |>*/ // const x = 0; // /** @type {import("./a").D} */ // const y = 0; -// === /a.js === -// module.exports = class /*FIND ALL REFS*/[|C|] {}; -// module.exports.D = class D {}; + // === Definitions === + // === /a.js === + // <|[|{| defId: 1 |}module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0 |}C|] {}|>|];|> + // module.exports.D = class D {}; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "local class", - "name": "(local class) C\nmodule C", - "textSpan": { - "start": 23, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) C\nmodule C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) export=\nimport export=", - "textSpan": { - "start": 0, - "length": 27 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "export=", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "export=", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 4, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) export=\nimport export=", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "export=", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "export=", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_js.2.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.2.baseline.jsonc index 55e21a8106311..1282c07a62a58 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.2.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.2.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /a.js === // module.exports = class C {}; -// module.exports./*FIND ALL REFS*/[|D|] = class D {}; +// <|module.exports./*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}D|] = class D {};|> // === /b.js === // /** @type {import("./a")} */ @@ -8,100 +9,71 @@ // /** @type {import("./a").[|D|]} */ // const y = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) D\nimport D", - "textSpan": { - "start": 44, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 29, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 29, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // module.exports = class C {}; + // <|module.exports./*FIND ALL REFS*/[|D|]|> = class D {}; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_js.3.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.3.baseline.jsonc index 26e86ead593a5..b119727890eb2 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.3.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.3.baseline.jsonc @@ -1,164 +1,125 @@ +// === findAllReferences === // === /a.js === // module.exports = class C {}; -// module.exports.D = class /*FIND ALL REFS*/[|D|] {}; +// module.exports.D = <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] {}|>; // === /b.js === // /** @type {import("./a")} */ // const x = 0; -// /** @type {import("./a").[|D|]} */ +// /** @type {import("./a").[|{| defId: 1 |}D|]} */ // const y = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "local class", - "name": "(local class) module.exports.D", - "textSpan": { - "start": 54, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "exports", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 48, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 48, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a.js === + // module.exports = class C {}; + // <|module.exports.[|{| defId: 1 |}D|]|> = <|class /*FIND ALL REFS*/[|{| defId: 0 |}D|] {}|>; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) module.exports.D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "exports", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "alias", - "name": "(alias) (local class) D\nimport D", - "textSpan": { - "start": 44, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 29, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_js.4.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.4.baseline.jsonc index 7dfaaac1b66f8..41ae6f1439960 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.4.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.4.baseline.jsonc @@ -1,120 +1,96 @@ +// === findAllReferences === // === /a.js === // /** -// * @callback /*FIND ALL REFS*/[|A|] +// * <|@callback /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}A|] // * @param {unknown} response -// */ +// |>*/ // // module.exports = {}; // === /b.js === // /** @typedef {import("./a").[|A|]} A */ -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type A = (response: unknown) => any", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "response", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unknown", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 7, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 7, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** + // * <|@callback /*FIND ALL REFS*/[|A|] + // * @param {unknown} response + // |>*/ + // + // module.exports = {}; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type A = (response: unknown) => any", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "response", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unknown", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_js.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.baseline.jsonc index 03306b0ea6920..8fd8197d59865 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.baseline.jsonc @@ -1,77 +1,39 @@ -// === /a.js === -// /*FIND ALL REFS*/[|module|].exports = class C {}; -// module.exports.D = class D {}; - +// === findAllReferences === // === /b.js === -// /** @type {import("[|./a|]")} */ +// /** <|@type {import("[|./a|]")} |>*/ // const x = 0; -// /** @type {import("[|./a|]").D} */ +// /** <|@type {import("[|./a|]").D} |>*/ // const y = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 59 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 3 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 4, - "length": 22 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 61, - "length": 3 - }, - "fileName": "/b.js", - "contextSpan": { - "start": 46, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 0, - "length": 6 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": false - } +// === /a.js === +// /*FIND ALL REFS*/<|[|module|].exports = class C {};|> +// module.exports.D = class D {}; + + // === Definitions === + // === /a.js === + // /*FIND ALL REFS*/[|module.exports = class C {}; + // module.exports.D = class D {};|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_meaningAtLocation.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_meaningAtLocation.baseline.jsonc index 27ac9623d6c39..baf9fc174109c 100644 --- a/tests/baselines/reference/findAllRefs_importType_meaningAtLocation.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_meaningAtLocation.baseline.jsonc @@ -1,399 +1,276 @@ +// === findAllReferences === // === /a.ts === -// /*FIND ALL REFS*/export type [|T|] = 0; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}T|] = 0;|> // export const T = 0; // === /b.ts === // const x: import("./a").[|T|] = 0; // const x: typeof import("./a").T = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "type T = 0", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // /*FIND ALL REFS*/<|export type [|T|] = 0;|> + // export const T = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = 0", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export type /*FIND ALL REFS*/[|T|] = 0; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = 0;|> // export const T = 0; // === /b.ts === // const x: import("./a").[|T|] = 0; // const x: typeof import("./a").T = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "type T = 0", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export type /*FIND ALL REFS*/[|T|] = 0;|> + // export const T = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = 0", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /a.ts === // export type T = 0; -// export const /*FIND ALL REFS*/[|T|] = 0; +// /*FIND ALL REFS*/export const T = 0; + + + +// === findAllReferences === +// === /a.ts === +// export type T = 0; +// <|export const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = 0;|> // === /b.ts === // const x: import("./a").T = 0; // const x: typeof import("./a").[|T|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const T: 0", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 19, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 60, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export type [|T|] = 0;|> + // export const /*FIND ALL REFS*/T = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const T: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export type [|T|] = 0; +// <|export type [|{| isWriteAccess: true |}T|] = 0;|> // export const T = 0; // === /b.ts === // const x: import("./a")./*FIND ALL REFS*/[|T|] = 0; // const x: typeof import("./a").T = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "type T = 0", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export type [|T|] = 0;|> + // export const T = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = 0", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // export type T = 0; -// export const [|T|] = 0; +// <|export const [|{| isWriteAccess: true |}T|] = 0;|> // === /b.ts === // const x: import("./a").T = 0; // const x: typeof import("./a")./*FIND ALL REFS*/[|T|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "const", - "name": "const T: 0", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "0", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 19, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 60, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export type [|T|] = 0;|> + // export const T = 0; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const T: 0", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "0", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_named.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_named.baseline.jsonc index 27b3a95ae7ea3..73913a60ebe15 100644 --- a/tests/baselines/reference/findAllRefs_importType_named.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_named.baseline.jsonc @@ -1,487 +1,333 @@ +// === findAllReferences === // === /a.ts === -// /*FIND ALL REFS*/export type [|T|] = number; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> // export type U = string; // === /b.ts === // const x: import("./a").[|T|] = 0; // const x: import("./a").U = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // /*FIND ALL REFS*/<|export type [|T|] = number;|> + // export type U = string; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export type /*FIND ALL REFS*/[|T|] = number; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> // export type U = string; // === /b.ts === // const x: import("./a").[|T|] = 0; // const x: import("./a").U = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // <|export type /*FIND ALL REFS*/[|T|] = number;|> + // export type U = string; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // export type T = number; -// /*FIND ALL REFS*/export type [|U|] = string; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}U|] = string;|> // === /b.ts === // const x: import("./a").T = 0; // const x: import("./a").[|U|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type U = string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 24, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 53, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // export type T = number; + // /*FIND ALL REFS*/<|export type [|U|] = string;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type U = string", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // export type T = number; -// export type /*FIND ALL REFS*/[|U|] = string; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}U|] = string;|> // === /b.ts === // const x: import("./a").T = 0; // const x: import("./a").[|U|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type U = string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 24, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 53, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.ts === + // export type T = number; + // <|export type /*FIND ALL REFS*/[|U|] = string;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type U = string", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === -// export type [|T|] = number; +// <|export type [|{| isWriteAccess: true |}T|] = number;|> // export type U = string; // === /b.ts === // const x: import("./a")./*FIND ALL REFS*/[|T|] = 0; // const x: import("./a").U = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 12, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 0, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // <|export type [|T|] = number;|> + // export type U = string; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.ts === // export type T = number; -// export type [|U|] = string; +// <|export type [|{| isWriteAccess: true |}U|] = string;|> // === /b.ts === // const x: import("./a").T = 0; // const x: import("./a")./*FIND ALL REFS*/[|U|] = 0; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "type", - "name": "type U = string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a.ts", - "contextSpan": { - "start": 24, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 53, - "length": 1 - }, - "fileName": "/b.ts", - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // export type T = number; + // <|export type [|U|] = string;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type U = string", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_typeofImport.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_typeofImport.baseline.jsonc index af2f235eea209..bad8985b8fcec 100644 --- a/tests/baselines/reference/findAllRefs_importType_typeofImport.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_typeofImport.baseline.jsonc @@ -1,289 +1,203 @@ +// === findAllReferences === // === /b.ts === -// /*FIND ALL REFS*/const [|x|]: typeof import("./a") = { x: 0 }; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}x|]: typeof import("./a") = { x: 0 };|> // const y: typeof import("./a") = { x: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "const", - "name": "const x: typeof import(\"/a\")", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 41 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /b.ts === + // /*FIND ALL REFS*/<|const [|x|]: typeof import("./a") = { x: 0 };|> + // const y: typeof import("./a") = { x: 0 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: typeof import(\"/a\")", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// const x: typeof import("/*FIND ALL REFS*/[|./a|]") = { x: 0 }; -// const y: typeof import("[|./a|]") = { x: 0 }; +// <|const x: typeof import("/*FIND ALL REFS*/[|./a|]") = { x: 0 };|> +// <|const y: typeof import("[|./a|]") = { x: 0 };|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 41 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 42, - "length": 41 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|export const x = 0;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === // const x: typeof import("./a") = { x: 0 }; -// /*FIND ALL REFS*/const [|y|]: typeof import("./a") = { x: 0 }; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}y|]: typeof import("./a") = { x: 0 };|> + + // === Definitions === + // === /b.ts === + // const x: typeof import("./a") = { x: 0 }; + // /*FIND ALL REFS*/<|const [|y|]: typeof import("./a") = { x: 0 };|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "const", - "name": "const y: typeof import(\"/a\")", - "textSpan": { - "start": 48, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 42, - "length": 41 - } - }, - "references": [ - { - "textSpan": { - "start": 48, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 42, - "length": 41 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const y: typeof import(\"/a\")", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b.ts === -// const x: typeof import("[|./a|]") = { x: 0 }; -// const y: typeof import("/*FIND ALL REFS*/[|./a|]") = { x: 0 }; +// <|const x: typeof import("[|./a|]") = { x: 0 };|> +// <|const y: typeof import("/*FIND ALL REFS*/[|./a|]") = { x: 0 };|> + + // === Definitions === + // === /a.ts === + // [|export const x = 0;|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 41 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 42, - "length": 41 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_jsEnum.baseline.jsonc b/tests/baselines/reference/findAllRefs_jsEnum.baseline.jsonc index 668e46fb8179e..f02ad20501f05 100644 --- a/tests/baselines/reference/findAllRefs_jsEnum.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_jsEnum.baseline.jsonc @@ -1,802 +1,607 @@ +// === findAllReferences === // === /a.js === // /** @enum {string} */ -// /*FIND ALL REFS*/const [|E|] = { A: "" }; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}E|] = { A: "" };|> // [|E|]["A"]; // /** @type {[|E|]} */ // const e = [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "const", - "name": "type E = string\nconst E: {\n A: string;\n}", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 22, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 62, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** @enum {string} */ + // /*FIND ALL REFS*/<|const [|E|] = { A: "" };|> + // E["A"]; + // /** @type {E} */ + // const e = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type E = string\nconst E: {\n A: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** @enum {string} */ -// const /*FIND ALL REFS*/[|E|] = { A: "" }; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}E|] = { A: "" };|> // [|E|]["A"]; // /** @type {[|E|]} */ // const e = [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "const", - "name": "type E = string\nconst E: {\n A: string;\n}", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 22, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 62, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.js === + // /** @enum {string} */ + // <|const /*FIND ALL REFS*/[|E|] = { A: "" };|> + // E["A"]; + // /** @type {E} */ + // const e = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type E = string\nconst E: {\n A: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** @enum {string} */ -// const [|E|] = { A: "" }; +// <|const [|{| isWriteAccess: true |}E|] = { A: "" };|> // /*FIND ALL REFS*/[|E|]["A"]; // /** @type {[|E|]} */ // const e = [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "const", - "name": "type E = string\nconst E: {\n A: string;\n}", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 22, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 62, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** @enum {string} */ + // <|const [|E|] = { A: "" };|> + // /*FIND ALL REFS*/E["A"]; + // /** @type {E} */ + // const e = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type E = string\nconst E: {\n A: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** @enum {string} */ -// const [|E|] = { A: "" }; +// <|const [|{| isWriteAccess: true |}E|] = { A: "" };|> // [|E|]["A"]; // /** @type {/*FIND ALL REFS*/[|E|]} */ // const e = [|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "const", - "name": "type E = string\nconst E: {\n A: string;\n}", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 22, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 62, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** @enum {string} */ + // <|const [|E|] = { A: "" };|> + // E["A"]; + // /** @type {/*FIND ALL REFS*/E} */ + // const e = E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type E = string\nconst E: {\n A: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.js === // /** @enum {string} */ -// const [|E|] = { A: "" }; +// <|const [|{| isWriteAccess: true |}E|] = { A: "" };|> // [|E|]["A"]; // /** @type {[|E|]} */ // const e = /*FIND ALL REFS*/[|E|].A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "const", - "name": "type E = string\nconst E: {\n A: string;\n}", - "textSpan": { - "start": 28, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 22, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 62, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 78, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** @enum {string} */ + // <|const [|E|] = { A: "" };|> + // E["A"]; + // /** @type {E} */ + // const e = /*FIND ALL REFS*/E.A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type E = string\nconst E: {\n A: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesAcrossMultipleProjects.baseline.jsonc b/tests/baselines/reference/findReferencesAcrossMultipleProjects.baseline.jsonc index ef329f2675d67..709358b806778 100644 --- a/tests/baselines/reference/findReferencesAcrossMultipleProjects.baseline.jsonc +++ b/tests/baselines/reference/findReferencesAcrossMultipleProjects.baseline.jsonc @@ -1,353 +1,213 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// /*FIND ALL REFS*/var [|x|]: number; +// /*FIND ALL REFS*/<|var [|{| isDefinition: true |}x|]: number;|> // === /tests/cases/fourslash/b.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; // === /tests/cases/fourslash/c.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // /*FIND ALL REFS*/<|var [|x|]: number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// var /*FIND ALL REFS*/[|x|]: number; +// <|var /*FIND ALL REFS*/[|{| isDefinition: true |}x|]: number;|> // === /tests/cases/fourslash/b.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; // === /tests/cases/fourslash/c.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|var /*FIND ALL REFS*/[|x|]: number;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// var [|x|]: number; +// <|var [|x|]: number;|> // === /tests/cases/fourslash/b.ts === // /// -// /*FIND ALL REFS*/[|x|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]++; // === /tests/cases/fourslash/c.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|var [|x|]: number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// var [|x|]: number; +// <|var [|x|]: number;|> // === /tests/cases/fourslash/b.ts === // /// -// [|x|]++; +// [|{| isWriteAccess: true |}x|]++; // === /tests/cases/fourslash/c.ts === // /// -// /*FIND ALL REFS*/[|x|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]++; + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|var [|x|]: number;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesAfterEdit.1.baseline.jsonc b/tests/baselines/reference/findReferencesAfterEdit.1.baseline.jsonc deleted file mode 100644 index 1422bc817a455..0000000000000 --- a/tests/baselines/reference/findReferencesAfterEdit.1.baseline.jsonc +++ /dev/null @@ -1,193 +0,0 @@ -// === /tests/cases/fourslash/a.ts === -// interface A { -// /*FIND ALL REFS*/[|foo|]: string; -// } - -// === /tests/cases/fourslash/b.ts === -// /// -// -// function foo(x: A) { -// x.[|foo|] -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "property", - "name": "(property) A.foo: string", - "textSpan": { - "start": 18, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 18, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - -// === /tests/cases/fourslash/a.ts === -// interface A { -// [|foo|]: string; -// } - -// === /tests/cases/fourslash/b.ts === -// /// -// -// function foo(x: A) { -// x./*FIND ALL REFS*/[|foo|] -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "property", - "name": "(property) A.foo: string", - "textSpan": { - "start": 18, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 18, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } - ] - } -] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesAfterEdit.2.baseline.jsonc b/tests/baselines/reference/findReferencesAfterEdit.2.baseline.jsonc deleted file mode 100644 index c4ffdfb45bd7f..0000000000000 --- a/tests/baselines/reference/findReferencesAfterEdit.2.baseline.jsonc +++ /dev/null @@ -1,195 +0,0 @@ -// === /tests/cases/fourslash/a.ts === -// interface A { -// /*FIND ALL REFS*/[|foo|]: string; -// } - -// === /tests/cases/fourslash/b.ts === -// /// -// -// -// function foo(x: A) { -// x.[|foo|] -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "property", - "name": "(property) A.foo: string", - "textSpan": { - "start": 18, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 18, - "length": 12 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 57, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - -// === /tests/cases/fourslash/a.ts === -// interface A { -// [|foo|]: string; -// } - -// === /tests/cases/fourslash/b.ts === -// /// -// -// -// function foo(x: A) { -// x./*FIND ALL REFS*/[|foo|] -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "property", - "name": "(property) A.foo: string", - "textSpan": { - "start": 18, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 18, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 57, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false - } - ] - } -] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesAfterEdit.baseline.jsonc b/tests/baselines/reference/findReferencesAfterEdit.baseline.jsonc new file mode 100644 index 0000000000000..6fd097f7ce03a --- /dev/null +++ b/tests/baselines/reference/findReferencesAfterEdit.baseline.jsonc @@ -0,0 +1,296 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// interface A { +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}foo|]: string;|> +// } + +// === /tests/cases/fourslash/b.ts === +// /// +// +// function foo(x: A) { +// x.[|foo|] +// } + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // interface A { + // /*FIND ALL REFS*/<|[|foo|]: string;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.foo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// interface A { +// <|[|foo|]: string;|> +// } + +// === /tests/cases/fourslash/b.ts === +// /// +// +// function foo(x: A) { +// x./*FIND ALL REFS*/[|foo|] +// } + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // interface A { + // <|[|foo|]: string;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.foo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === customWork === +// edits + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// interface A { +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}foo|]: string;|> +// } + +// === /tests/cases/fourslash/b.ts === +// /// +// +// +// function foo(x: A) { +// x.[|foo|] +// } + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // interface A { + // /*FIND ALL REFS*/<|[|foo|]: string;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.foo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// interface A { +// <|[|foo|]: string;|> +// } + +// === /tests/cases/fourslash/b.ts === +// /// +// +// +// function foo(x: A) { +// x./*FIND ALL REFS*/[|foo|] +// } + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // interface A { + // <|[|foo|]: string;|> + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.foo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesDefinitionDisplayParts.baseline.jsonc b/tests/baselines/reference/findReferencesDefinitionDisplayParts.baseline.jsonc new file mode 100644 index 0000000000000..ba23995c276d3 --- /dev/null +++ b/tests/baselines/reference/findReferencesDefinitionDisplayParts.baseline.jsonc @@ -0,0 +1,185 @@ +// === findAllReferences === +// === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === +// <|class [|{| isWriteAccess: true, isDefinition: true |}Gre/*FIND ALL REFS*/eter|] { +// someFunction() { this; } +// }|> +// +// type Options = "option 1" | "option 2"; +// let myOption: Options = "option 1"; +// +// someLabel: +// break someLabel; + + // === Definitions === + // === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === + // <|class [|Gre/*FIND ALL REFS*/eter|] { + // someFunction() { this; } + // }|> + // + // type Options = "option 1" | "option 2"; + // let myOption: Options = "option 1"; + // + // someLabel: + // break someLabel; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Greeter", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Greeter", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === +// class Greeter { +// someFunction() { [|th/*FIND ALL REFS*/is|]; } +// } +// +// type Options = "option 1" | "option 2"; +// let myOption: Options = "option 1"; +// +// someLabel: +// break someLabel; + + // === Definitions === + // === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === + // class Greeter { + // someFunction() { [|th/*FIND ALL REFS*/is|]; } + // } + // + // type Options = "option 1" | "option 2"; + // let myOption: Options = "option 1"; + // + // someLabel: + // break someLabel; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "this", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === +// class Greeter { +// someFunction() { this; } +// } +// +// type Options = "[|{| isInString: true |}opt/*FIND ALL REFS*/ion 1|]" | "option 2"; +// let myOption: Options = "[|{| isInString: true |}option 1|]"; +// +// someLabel: +// break someLabel; + + // === Definitions === + // === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === + // class Greeter { + // someFunction() { this; } + // } + // + // type Options = "[|opt/*FIND ALL REFS*/ion 1|]" | "option 2"; + // let myOption: Options = "option 1"; + // + // someLabel: + // break someLabel; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "option 1", + "displayParts": [ + { + "text": "\"option 1\"", + "kind": "stringLiteral" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === +// class Greeter { +// someFunction() { this; } +// } +// +// type Options = "option 1" | "option 2"; +// let myOption: Options = "option 1"; +// +// <|[|some/*FIND ALL REFS*/Label|]: +// <|break [|someLabel|];|>|> + + // === Definitions === + // === /tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts === + // class Greeter { + // someFunction() { this; } + // } + // + // type Options = "option 1" | "option 2"; + // let myOption: Options = "option 1"; + // + // [|some/*FIND ALL REFS*/Label|]: + // break someLabel; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "someLabel", + "displayParts": [ + { + "text": "someLabel", + "kind": "text" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesJSXTagName.baseline.jsonc b/tests/baselines/reference/findReferencesJSXTagName.baseline.jsonc index c61df6745ac8d..064a42a7cd564 100644 --- a/tests/baselines/reference/findReferencesJSXTagName.baseline.jsonc +++ b/tests/baselines/reference/findReferencesJSXTagName.baseline.jsonc @@ -1,493 +1,397 @@ +// === findAllReferences === // === /tests/cases/fourslash/index.tsx === -// import { /*FIND ALL REFS*/[|SubmissionComp|] } from "./RedditSubmission" +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}SubmissionComp|] } from "./RedditSubmission"|> // function displaySubreddit(subreddit: string) { // let components = submissions -// .map((value, index) => <[|SubmissionComp|] key={ index } elementPosition= { index } {...value.data} />); +// .map((value, index) => <|<[|{| defId: 0 |}SubmissionComp|] key={ index } elementPosition= { index } {...value.data} />|>); // } // === /tests/cases/fourslash/RedditSubmission.ts === -// export const [|SubmissionComp|] = (submission: SubmissionProps) => -//
; +// export const <|[|{| defId: 1, isWriteAccess: true |}SubmissionComp|] = (submission: SubmissionProps) => +//
={{ fontFamily: "sans-serif" }}>
; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/index.tsx", - "kind": "alias", - "name": "(alias) const SubmissionComp: (submission: SubmissionProps) => div\nimport SubmissionComp", - "textSpan": { - "start": 9, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "submission", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionProps", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "div", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 51 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 0, - "length": 51 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 164, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 163, - "length": 75 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/index.tsx === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}SubmissionComp|] } from "./RedditSubmission"|> + // function displaySubreddit(subreddit: string) { + // let components = submissions + // .map((value, index) => ); + // } + + // === /tests/cases/fourslash/RedditSubmission.ts === + // export const <|[|{| defId: 1 |}SubmissionComp|] = (submission: SubmissionProps) => + //
={{ fontFamily: "sans-serif" }}>
; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const SubmissionComp: (submission: SubmissionProps) => div\nimport SubmissionComp", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "submission", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionProps", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "div", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/RedditSubmission.ts", - "kind": "const", - "name": "const SubmissionComp: (submission: SubmissionProps) => div", - "textSpan": { - "start": 13, - "length": 14 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "submission", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionProps", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "div", - "kind": "text" - } - ], - "contextSpan": { - "start": 13, - "length": 64 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/RedditSubmission.ts", - "contextSpan": { - "start": 13, - "length": 64 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const SubmissionComp: (submission: SubmissionProps) => div", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "submission", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionProps", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "div", + "kind": "text" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/RedditSubmission.ts === +// export const /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}SubmissionComp|] = (submission: SubmissionProps) => +//
={{ fontFamily: "sans-serif" }}>
; // === /tests/cases/fourslash/index.tsx === -// import { [|SubmissionComp|] } from "./RedditSubmission" +// <|import { [|{| defId: 1, isWriteAccess: true |}SubmissionComp|] } from "./RedditSubmission"|> // function displaySubreddit(subreddit: string) { // let components = submissions -// .map((value, index) => <[|SubmissionComp|] key={ index } elementPosition= { index } {...value.data} />); +// .map((value, index) => <|<[|{| defId: 1 |}SubmissionComp|] key={ index } elementPosition= { index } {...value.data} />|>); // } -// === /tests/cases/fourslash/RedditSubmission.ts === -// export const /*FIND ALL REFS*/[|SubmissionComp|] = (submission: SubmissionProps) => -//
; + // === Definitions === + // === /tests/cases/fourslash/RedditSubmission.ts === + // export const /*FIND ALL REFS*/<|[|{| defId: 0 |}SubmissionComp|] = (submission: SubmissionProps) => + //
={{ fontFamily: "sans-serif" }}>
; + + // === /tests/cases/fourslash/index.tsx === + // <|import { [|{| defId: 1 |}SubmissionComp|] } from "./RedditSubmission"|> + // function displaySubreddit(subreddit: string) { + // let components = submissions + // .map((value, index) => ); + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/RedditSubmission.ts", - "kind": "const", - "name": "const SubmissionComp: (submission: SubmissionProps) => div", - "textSpan": { - "start": 13, - "length": 14 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "submission", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionProps", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "div", - "kind": "text" - } - ], - "contextSpan": { - "start": 13, - "length": 64 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/RedditSubmission.ts", - "contextSpan": { - "start": 13, - "length": 64 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const SubmissionComp: (submission: SubmissionProps) => div", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "submission", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionProps", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "div", + "kind": "text" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/index.tsx", - "kind": "alias", - "name": "(alias) const SubmissionComp: (submission: SubmissionProps) => div\nimport SubmissionComp", - "textSpan": { - "start": 9, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "submission", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionProps", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "div", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SubmissionComp", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 51 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 0, - "length": 51 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 164, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 163, - "length": 75 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const SubmissionComp: (submission: SubmissionProps) => div\nimport SubmissionComp", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "submission", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionProps", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "div", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubmissionComp", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesJSXTagName2.baseline.jsonc b/tests/baselines/reference/findReferencesJSXTagName2.baseline.jsonc index 5d49bc1a88624..63a2c15844e8d 100644 --- a/tests/baselines/reference/findReferencesJSXTagName2.baseline.jsonc +++ b/tests/baselines/reference/findReferencesJSXTagName2.baseline.jsonc @@ -1,387 +1,309 @@ +// === findAllReferences === // === /tests/cases/fourslash/index.tsx === -// /*FIND ALL REFS*/const [|obj|] = {Component: () =>
}; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}obj|] = {Component: () =>
};|> // const element = <[|obj|].Component/>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/index.tsx", - "kind": "const", - "name": "const obj: {\n Component: () => any;\n}", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "obj", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Component", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/index.tsx === + // /*FIND ALL REFS*/<|const [|obj|] = {Component: () =>
};|> + // const element = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const obj: {\n Component: () => any;\n}", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "obj", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Component", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/index.tsx === -// const /*FIND ALL REFS*/[|obj|] = {Component: () =>
}; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}obj|] = {Component: () =>
};|> // const element = <[|obj|].Component/>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/index.tsx", - "kind": "const", - "name": "const obj: {\n Component: () => any;\n}", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "obj", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Component", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/index.tsx === + // <|const /*FIND ALL REFS*/[|obj|] = {Component: () =>
};|> + // const element = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const obj: {\n Component: () => any;\n}", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "obj", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Component", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/index.tsx === -// const [|obj|] = {Component: () =>
}; +// <|const [|{| isWriteAccess: true |}obj|] = {Component: () =>
};|> // const element = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/index.tsx", - "kind": "const", - "name": "const obj: {\n Component: () => any;\n}", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "obj", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Component", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 38 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "contextSpan": { - "start": 0, - "length": 38 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/index.tsx", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/index.tsx === + // <|const [|obj|] = {Component: () =>
};|> + // const element = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const obj: {\n Component: () => any;\n}", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "obj", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Component", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/findReferencesJSXTagName3.baseline.jsonc b/tests/baselines/reference/findReferencesJSXTagName3.baseline.jsonc index b349afbeb4812..d68b8ef85d043 100644 --- a/tests/baselines/reference/findReferencesJSXTagName3.baseline.jsonc +++ b/tests/baselines/reference/findReferencesJSXTagName3.baseline.jsonc @@ -1,758 +1,504 @@ +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } // export interface IntrinsicElements { -// /*FIND ALL REFS*/[|div|]: any; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}div|]: any;|> // } // } // // const Comp = () => -// <[|div|]> +// <|<|<[|{| contextId: 1 |}div|]> // Some content -// <[|div|]>More content -// ; +// <|<|<[|{| contextId: 3 |}div|]>More content|>|> +// |>|>; // // const x = // Content // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: any", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 98, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 176, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 194, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 205, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // /*FIND ALL REFS*/<|[|div|]: any;|> + // } + // } + // + // const Comp = () => + //
+ // Some content + //
More content
+ //
; + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } // export interface IntrinsicElements { -// [|div|]: any; +// <|[|div|]: any;|> // } // } // // const Comp = () => -// +// <|<| // Some content -// <[|div|]>More content -// ; +// <|<|<[|{| contextId: 3 |}div|]>More content|>|> +// |>|>; // // const x = // Content // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: any", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 98, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 176, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 205, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // <|[|div|]: any;|> + // } + // } + // + // const Comp = () => + // + // Some content + //
More content
+ //
; + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } // export interface IntrinsicElements { -// [|div|]: any; +// <|[|div|]: any;|> // } // } // // const Comp = () => -// <[|div|]> +// <|<|<[|{| contextId: 1 |}div|]> // Some content -// More content -// ; +// <|<|More content|>|> +// |>|>; // // const x = // Content // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: any", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 98, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 176, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 205, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // <|[|div|]: any;|> + // } + // } + // + // const Comp = () => + //
+ // Some content + // More content
+ //
; + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } // export interface IntrinsicElements { -// [|div|]: any; +// <|[|div|]: any;|> // } // } // // const Comp = () => -// <[|div|]> +// <|<|<[|{| contextId: 1 |}div|]> // Some content -// <[|div|]>More content -// ; +// <|<|<[|{| contextId: 3 |}div|]>More content|>|> +// |>|>; // // const x = // Content // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: any", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 98, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 176, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 205, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // <|[|div|]: any;|> + // } + // } + // + // const Comp = () => + //
+ // Some content + //
More content + //
; + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } // export interface IntrinsicElements { -// [|div|]: any; +// <|[|div|]: any;|> // } // } // // const Comp = () => -// <[|div|]> +// <|<|<[|{| contextId: 1 |}div|]> // Some content -// <[|div|]>More content -// ; +// <|<|<[|{| contextId: 3 |}div|]>More content|>|> +// |>|>; // // const x = // Content // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: any", - "textSpan": { - "start": 98, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 98, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 98, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 176, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 194, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 175, - "length": 23 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 205, - "length": 3 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 140, - "length": 69 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // <|[|div|]: any;|> + // } + // } + // + // const Comp = () => + //
+ // Some content + //
More content
+ // ; + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } @@ -761,131 +507,102 @@ // } // } // -// const /*FIND ALL REFS*/[|Comp|] = () => +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Comp|] = () => //
// Some content //
More content
-//
; +//
;|> // -// const x = <[|Comp|]> +// const x = <|<|<[|{| contextId: 1 |}Comp|]> // Content -// ; +// |>|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "const", - "name": "const Comp: () => JSX.Element", - "textSpan": { - "start": 123, - "length": 4 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Comp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 117, - "length": 93 - } - }, - "references": [ - { - "textSpan": { - "start": 123, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 117, - "length": 93 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 223, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 243, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // div: any; + // } + // } + // + // <|const /*FIND ALL REFS*/[|Comp|] = () => + //
+ // Some content + //
More content
+ //
;|> + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const Comp: () => JSX.Element", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } @@ -894,128 +611,102 @@ // } // } // -// const [|Comp|] = () => +// <|const [|{| isWriteAccess: true |}Comp|] = () => //
// Some content //
More content
-//
; +//
;|> // -// const x = +// const x = <|<| // Content -// ; +// |>|>; + + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // div: any; + // } + // } + // + // <|const [|Comp|] = () => + //
+ // Some content + //
More content
+ //
;|> + // + // const x = + // Content + // ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "const", - "name": "const Comp: () => JSX.Element", - "textSpan": { - "start": 123, - "length": 4 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Comp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 117, - "length": 93 - } - }, - "references": [ - { - "textSpan": { - "start": 123, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 117, - "length": 93 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 223, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 243, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const Comp: () => JSX.Element", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a.tsx === // namespace JSX { // export interface Element { } @@ -1024,124 +715,263 @@ // } // } // -// const [|Comp|] = () => +// <|const [|{| isWriteAccess: true |}Comp|] = () => //
// Some content //
More content
-//
; +//
;|> // -// const x = <[|Comp|]> +// const x = <|<|<[|{| contextId: 1 |}Comp|]> // Content -// ; +// |>|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.tsx", - "kind": "const", - "name": "const Comp: () => JSX.Element", - "textSpan": { - "start": 123, - "length": 4 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Comp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 117, - "length": 93 - } - }, - "references": [ - { - "textSpan": { - "start": 123, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 117, - "length": 93 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 223, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 243, - "length": 4 - }, - "fileName": "/a.tsx", - "contextSpan": { - "start": 222, - "length": 26 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.tsx === + // namespace JSX { + // export interface Element { } + // export interface IntrinsicElements { + // div: any; + // } + // } + // + // <|const [|Comp|] = () => + //
+ // Some content + //
More content
+ //
;|> + // + // const x = + // Content + // ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const Comp: () => JSX.Element", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}div|]: any;|> +// } +// } +// +// const Comp = () => +// <|<|<[|{| contextId: 1, kind: "reference" |}div|]> +// Some content +// <|<|<[|{| contextId: 3, kind: "reference" |}div|]>More content|>|> +// |>|>; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +// +// Some content +//
More content
+// ; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +//
+// Some content +// More content +//
; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +//
+// Some content +// <[|{| kind: "none" |}div|]>More content +//
; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +// <[|{| kind: "none" |}div|]> +// Some content +//
More content
+// ; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// <|const /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}Comp|] = () => +//
+// Some content +//
More content
+//
;|> +// +// const x = <|<|<[|{| contextId: 1, kind: "reference" |}Comp|]> +// Content +// |>|>; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +//
+// Some content +//
More content
+//
; +// +// const x = +// Content +// ; + + + +// === documentHighlights === +// === /a.tsx === +// namespace JSX { +// export interface Element { } +// export interface IntrinsicElements { +// div: any; +// } +// } +// +// const Comp = () => +//
+// Some content +//
More content
+//
; +// +// const x = <[|{| kind: "none" |}Comp|]> +// Content +// ; \ No newline at end of file diff --git a/tests/baselines/reference/getDefinitionAtPosition-pp.baseline.jsonc b/tests/baselines/reference/getDefinitionAtPosition-pp.baseline.jsonc new file mode 100644 index 0000000000000..b6c372e78a2c1 --- /dev/null +++ b/tests/baselines/reference/getDefinitionAtPosition-pp.baseline.jsonc @@ -0,0 +1,147 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Definition.ts === +// <|var [|remoteVariable|];|> +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Consumption.ts === +// /*GOTO DEF POS*/remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "var", + "name": "remoteVariable", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// <|function [|remoteFunction|]() { }|> +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// /*GOTO DEF POS*/remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "function", + "name": "remoteFunction", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// <|class [|remoteClass|] { }|> +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new /*GOTO DEF POS*/remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "class", + "name": "remoteClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// <|interface [|remoteInterface|]{ }|> +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements /*GOTO DEF POS*/remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "interface", + "name": "remoteInterface", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// <|module [|remoteModule|]{ export var foo = 1;}|> + +// === /tests/cases/fourslash/shims-pp/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = /*GOTO DEF POS*/remoteModule.foo; + + // === Details === + [ + { + "kind": "module", + "name": "remoteModule", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getDefinitionAtPosition-shims.baseline.jsonc b/tests/baselines/reference/getDefinitionAtPosition-shims.baseline.jsonc new file mode 100644 index 0000000000000..1f4a1f978d098 --- /dev/null +++ b/tests/baselines/reference/getDefinitionAtPosition-shims.baseline.jsonc @@ -0,0 +1,147 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Definition.ts === +// <|var [|remoteVariable|];|> +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Consumption.ts === +// /*GOTO DEF POS*/remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "var", + "name": "remoteVariable", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// <|function [|remoteFunction|]() { }|> +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// /*GOTO DEF POS*/remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "function", + "name": "remoteFunction", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// <|class [|remoteClass|] { }|> +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new /*GOTO DEF POS*/remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "class", + "name": "remoteClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// <|interface [|remoteInterface|]{ }|> +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements /*GOTO DEF POS*/remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "interface", + "name": "remoteInterface", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// <|module [|remoteModule|]{ export var foo = 1;}|> + +// === /tests/cases/fourslash/shims/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = /*GOTO DEF POS*/remoteModule.foo; + + // === Details === + [ + { + "kind": "module", + "name": "remoteModule", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getFileReferences1.baseline.jsonc b/tests/baselines/reference/getFileReferences1.baseline.jsonc index 4a3bf894ee91d..88c3a7dfa615b 100644 --- a/tests/baselines/reference/getFileReferences1.baseline.jsonc +++ b/tests/baselines/reference/getFileReferences1.baseline.jsonc @@ -1,60 +1,12 @@ +// === getFileReferences === +// fileName: /project/a.ts + // === /project/b.ts === -// import "[|./a|]"; +// <|import "[|./a|]";|> // === /project/c.ts === -// import {} from "[|./a|]"; +// <|import {} from "[|./a|]";|> // === /project/d.ts === -// import { a } from "[|/project/a|]"; -// type T = typeof import("[|./a|]").a; - -[ - { - "textSpan": { - "start": 8, - "length": 3 - }, - "fileName": "/project/b.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/project/c.ts", - "contextSpan": { - "start": 0, - "length": 21 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 19, - "length": 10 - }, - "fileName": "/project/d.ts", - "contextSpan": { - "start": 0, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 56, - "length": 3 - }, - "fileName": "/project/d.ts", - "contextSpan": { - "start": 32, - "length": 32 - }, - "isWriteAccess": false - } -] \ No newline at end of file +// <|import { a } from "[|/project/a|]";|> +// <|type T = typeof import("[|./a|]").a;|> \ No newline at end of file diff --git a/tests/baselines/reference/getFileReferences2.baseline.jsonc b/tests/baselines/reference/getFileReferences2.baseline.jsonc index 35ca29c1473a2..112767af54ec6 100644 --- a/tests/baselines/reference/getFileReferences2.baseline.jsonc +++ b/tests/baselines/reference/getFileReferences2.baseline.jsonc @@ -1,13 +1,5 @@ -// === /project/b.ts === -// import [|"./a"|]; +// === getFileReferences === +// fileName: /project/a.ts -[ - { - "textSpan": { - "start": 7, - "length": 5 - }, - "fileName": "/project/b.ts", - "isWriteAccess": false - } -] \ No newline at end of file +// === /project/b.ts === +// import [|"./a"|]; \ No newline at end of file diff --git a/tests/baselines/reference/getFileReferences_deduplicate.baseline.jsonc b/tests/baselines/reference/getFileReferences_deduplicate.baseline.jsonc index e2d7132131f50..b23d3ce16769a 100644 --- a/tests/baselines/reference/getFileReferences_deduplicate.baseline.jsonc +++ b/tests/baselines/reference/getFileReferences_deduplicate.baseline.jsonc @@ -1,24 +1,8 @@ -// === /test.ts === -// import "[|./util|]"; +// === getFileReferences === +// fileName: /util.ts // === /index.ts === // export * from "[|./util|]"; -[ - { - "fileName": "/index.ts", - "textSpan": { - "start": 15, - "length": 6 - }, - "isWriteAccess": false - }, - { - "fileName": "/test.ts", - "textSpan": { - "start": 8, - "length": 6 - }, - "isWriteAccess": false - } -] \ No newline at end of file +// === /test.ts === +// import "[|./util|]"; \ No newline at end of file diff --git a/tests/baselines/reference/getFileReferences_server1.baseline.jsonc b/tests/baselines/reference/getFileReferences_server1.baseline.jsonc index 3071b65967991..54cbf1cea98d0 100644 --- a/tests/baselines/reference/getFileReferences_server1.baseline.jsonc +++ b/tests/baselines/reference/getFileReferences_server1.baseline.jsonc @@ -1,3 +1,6 @@ +// === getFileReferences === +// fileName: /project/a.ts + // === /project/b.ts === // import "[|./a|]"; @@ -6,39 +9,4 @@ // === /project/d.ts === // import { a } from "[|/project/a|]"; -// type T = typeof import("[|./a|]").a; - -[ - { - "fileName": "/project/b.ts", - "textSpan": { - "start": 8, - "length": 3 - }, - "isWriteAccess": false - }, - { - "fileName": "/project/c.ts", - "textSpan": { - "start": 16, - "length": 3 - }, - "isWriteAccess": false - }, - { - "fileName": "/project/d.ts", - "textSpan": { - "start": 19, - "length": 10 - }, - "isWriteAccess": false - }, - { - "fileName": "/project/d.ts", - "textSpan": { - "start": 56, - "length": 3 - }, - "isWriteAccess": false - } -] \ No newline at end of file +// type T = typeof import("[|./a|]").a; \ No newline at end of file diff --git a/tests/baselines/reference/getFileReferences_server2.baseline.jsonc b/tests/baselines/reference/getFileReferences_server2.baseline.jsonc index 10b21c957abdc..c3db54350821d 100644 --- a/tests/baselines/reference/getFileReferences_server2.baseline.jsonc +++ b/tests/baselines/reference/getFileReferences_server2.baseline.jsonc @@ -1,5 +1,5 @@ -// === /packages/client/index.ts === -// import "[|@shared/referenced|]"; +// === getFileReferences === +// fileName: /packages/shared/src/referenced.ts // === /packages/server/index.js === // const mod = require("[|../shared/src/referenced|]"); @@ -7,29 +7,5 @@ // === /packages/server/router.js === // const blah = require("[|../shared/dist/referenced|]"); -[ - { - "fileName": "/packages/server/index.js", - "textSpan": { - "start": 21, - "length": 24 - }, - "isWriteAccess": false - }, - { - "fileName": "/packages/server/router.js", - "textSpan": { - "start": 22, - "length": 25 - }, - "isWriteAccess": false - }, - { - "fileName": "/packages/client/index.ts", - "textSpan": { - "start": 8, - "length": 18 - }, - "isWriteAccess": false - } -] \ No newline at end of file +// === /packages/client/index.ts === +// import "[|@shared/referenced|]"; \ No newline at end of file diff --git a/tests/baselines/reference/getImplementationAtPosition-pp.baseline.jsonc b/tests/baselines/reference/getImplementationAtPosition-pp.baseline.jsonc new file mode 100644 index 0000000000000..0c6e15e1007b8 --- /dev/null +++ b/tests/baselines/reference/getImplementationAtPosition-pp.baseline.jsonc @@ -0,0 +1,205 @@ +// === goToImplementation === +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Implementation.ts === +// <|class [|FooImpl|] implements Foo {}|> +// +// class Bar { +// hello() {} +// } +// + +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Consumption.ts === +// interface Fo/*GOTO IMPL*/o {} +// +// var x = new Bar(); +// +// x.hello(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooImpl", + "kind": "className" + } + ], + "kind": "class" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Implementation.ts === +// class FooImpl implements Foo {} +// +// <|class [|Bar|] { +// hello() {} +// }|> +// + +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new B/*GOTO IMPL*/ar(); +// +// x.hello(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "class" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Implementation.ts === +// class FooImpl implements Foo {} +// +// class Bar { +// <|[|hello|]() {}|> +// } +// + +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new Bar(); +// +// x.hel/*GOTO IMPL*/lo(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims-pp/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new Bar(); +// +// x.hello(); +// +// <|class [|SomeClass|] { +// someMethod() { +// thi/*GOTO IMPL*/s.someMethod(); +// } +// }|> + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SomeClass", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getImplementationAtPosition-shims.baseline.jsonc b/tests/baselines/reference/getImplementationAtPosition-shims.baseline.jsonc new file mode 100644 index 0000000000000..8900f3366822e --- /dev/null +++ b/tests/baselines/reference/getImplementationAtPosition-shims.baseline.jsonc @@ -0,0 +1,205 @@ +// === goToImplementation === +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Implementation.ts === +// <|class [|FooImpl|] implements Foo {}|> +// +// class Bar { +// hello() {} +// } +// + +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Consumption.ts === +// interface Fo/*GOTO IMPL*/o {} +// +// var x = new Bar(); +// +// x.hello(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooImpl", + "kind": "className" + } + ], + "kind": "class" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Implementation.ts === +// class FooImpl implements Foo {} +// +// <|class [|Bar|] { +// hello() {} +// }|> +// + +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new B/*GOTO IMPL*/ar(); +// +// x.hello(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "class" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Implementation.ts === +// class FooImpl implements Foo {} +// +// class Bar { +// <|[|hello|]() {}|> +// } +// + +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new Bar(); +// +// x.hel/*GOTO IMPL*/lo(); +// +// class SomeClass { +// someMethod() { +// this.someMethod(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/shims/goToImplementationDifferentFile_Consumption.ts === +// interface Foo {} +// +// var x = new Bar(); +// +// x.hello(); +// +// <|class [|SomeClass|] { +// someMethod() { +// thi/*GOTO IMPL*/s.someMethod(); +// } +// }|> + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SomeClass", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAbstract01.baseline.jsonc b/tests/baselines/reference/getOccurrencesAbstract01.baseline.jsonc new file mode 100644 index 0000000000000..ca81d65ce926e --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAbstract01.baseline.jsonc @@ -0,0 +1,77 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract01.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] class Animal { +// [|{| kind: "none" |}abstract|] prop1; // Does not compile +// [|{| kind: "none" |}abstract|] abstract(); +// [|{| kind: "none" |}abstract|] walk(): void; +// [|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // Abstract class below should not get highlighted +// abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract01.ts === +// [|{| kind: "none" |}abstract|] class Animal { +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] prop1; // Does not compile +// [|{| kind: "none" |}abstract|] abstract(); +// [|{| kind: "none" |}abstract|] walk(): void; +// [|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // Abstract class below should not get highlighted +// abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract01.ts === +// [|{| kind: "none" |}abstract|] class Animal { +// [|{| kind: "none" |}abstract|] prop1; // Does not compile +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] abstract(); +// [|{| kind: "none" |}abstract|] walk(): void; +// [|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // Abstract class below should not get highlighted +// abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract01.ts === +// [|{| kind: "none" |}abstract|] class Animal { +// [|{| kind: "none" |}abstract|] prop1; // Does not compile +// [|{| kind: "none" |}abstract|] abstract(); +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] walk(): void; +// [|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // Abstract class below should not get highlighted +// abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract01.ts === +// [|{| kind: "none" |}abstract|] class Animal { +// [|{| kind: "none" |}abstract|] prop1; // Does not compile +// [|{| kind: "none" |}abstract|] abstract(); +// [|{| kind: "none" |}abstract|] walk(): void; +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // Abstract class below should not get highlighted +// abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAbstract02.baseline.jsonc b/tests/baselines/reference/getOccurrencesAbstract02.baseline.jsonc new file mode 100644 index 0000000000000..ae12f4dd02a9a --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAbstract02.baseline.jsonc @@ -0,0 +1,57 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract02.ts === +// // Not valid TS (abstract methods can only appear in abstract classes) +// class Animal { +// abstract walk(): void; +// abstract makeSound(): void; +// } +// // abstract cannot appear here, won't get highlighted +// let c = /*HIGHLIGHTS*/abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract02.ts === +// // Not valid TS (abstract methods can only appear in abstract classes) +// class Animal { +// abstract walk(): void; +// abstract makeSound(): void; +// } +// // abstract cannot appear here, won't get highlighted +// let c = abstract class Foo { +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] foo(): void; +// [|{| kind: "none" |}abstract|] bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract02.ts === +// // Not valid TS (abstract methods can only appear in abstract classes) +// class Animal { +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] walk(): void; +// [|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // abstract cannot appear here, won't get highlighted +// let c = abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract02.ts === +// // Not valid TS (abstract methods can only appear in abstract classes) +// class Animal { +// [|{| kind: "none" |}abstract|] walk(): void; +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] makeSound(): void; +// } +// // abstract cannot appear here, won't get highlighted +// let c = abstract class Foo { +// abstract foo(): void; +// abstract bar(): void; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAbstract03.baseline.jsonc b/tests/baselines/reference/getOccurrencesAbstract03.baseline.jsonc new file mode 100644 index 0000000000000..be1c29974f66f --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAbstract03.baseline.jsonc @@ -0,0 +1,99 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] class A { +// [|{| kind: "none" |}abstract|] m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// abstract class A { abstract m(): void; } +// default: +// abstract class B { abstract m(): void; } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// [|{| kind: "none" |}abstract|] class A { +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// abstract class A { abstract m(): void; } +// default: +// abstract class B { abstract m(): void; } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// abstract class A { +// abstract m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] class A { [|{| kind: "none" |}abstract|] m(): void; } +// default: +// abstract class B { abstract m(): void; } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// abstract class A { +// abstract m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// [|{| kind: "none" |}abstract|] class A { /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] m(): void; } +// default: +// abstract class B { abstract m(): void; } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// abstract class A { +// abstract m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// abstract class A { abstract m(): void; } +// default: +// /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] class B { [|{| kind: "none" |}abstract|] m(): void; } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAbstract03.ts === +// function f() { +// abstract class A { +// abstract m(): void; +// } +// abstract class B {} +// } +// switch (0) { +// case 0: +// abstract class A { abstract m(): void; } +// default: +// [|{| kind: "none" |}abstract|] class B { /*HIGHLIGHTS*/[|{| kind: "none" |}abstract|] m(): void; } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAfterEdit.baseline.jsonc b/tests/baselines/reference/getOccurrencesAfterEdit.baseline.jsonc new file mode 100644 index 0000000000000..54a5cc2241234 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAfterEdit.baseline.jsonc @@ -0,0 +1,27 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAfterEdit.ts === +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } + + + +// === customWork === +// Added new line + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAfterEdit.ts === +// +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAsyncAwait.baseline.jsonc b/tests/baselines/reference/getOccurrencesAsyncAwait.baseline.jsonc new file mode 100644 index 0000000000000..e5c2b09776cca --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAsyncAwait.baseline.jsonc @@ -0,0 +1,112 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// class Foo { +// async memberFunction() { +// await 1; +// } +// } +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } +// async function g() { +// await 300; +// async function f() { +// await 400; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait.ts === +// [|{| kind: "none" |}async|] function f() { +// /*HIGHLIGHTS*/[|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// class Foo { +// async memberFunction() { +// await 1; +// } +// } +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } +// async function g() { +// await 300; +// async function f() { +// await 400; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// /*HIGHLIGHTS*/[|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// class Foo { +// async memberFunction() { +// await 1; +// } +// } +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } +// async function g() { +// await 300; +// async function f() { +// await 400; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] /*HIGHLIGHTS*/[|{| kind: "none" |}await|] 200; +// class Foo { +// async memberFunction() { +// await 1; +// } +// } +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } +// async function g() { +// await 300; +// async function f() { +// await 400; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// class Foo { +// async memberFunction() { +// await 1; +// } +// } +// return /*HIGHLIGHTS*/[|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } +// async function g() { +// await 300; +// async function f() { +// await 400; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAsyncAwait2.baseline.jsonc b/tests/baselines/reference/getOccurrencesAsyncAwait2.baseline.jsonc new file mode 100644 index 0000000000000..8b1859b49c294 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAsyncAwait2.baseline.jsonc @@ -0,0 +1,57 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait2.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait2.ts === +// [|{| kind: "none" |}async|] function f() { +// /*HIGHLIGHTS*/[|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait2.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// /*HIGHLIGHTS*/[|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait2.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] /*HIGHLIGHTS*/[|{| kind: "none" |}await|] 200; +// return [|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait2.ts === +// [|{| kind: "none" |}async|] function f() { +// [|{| kind: "none" |}await|] 100; +// [|{| kind: "none" |}await|] [|{| kind: "none" |}await|] 200; +// return /*HIGHLIGHTS*/[|{| kind: "none" |}await|] async function () { +// await 300; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAsyncAwait3.baseline.jsonc b/tests/baselines/reference/getOccurrencesAsyncAwait3.baseline.jsonc new file mode 100644 index 0000000000000..60ae0f3f46230 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAsyncAwait3.baseline.jsonc @@ -0,0 +1,6 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesAsyncAwait3.ts === +// a/*HIGHLIGHTS*/wait 100; +// async function f() { +// await 300; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAtPosition-pp.baseline.jsonc b/tests/baselines/reference/getOccurrencesAtPosition-pp.baseline.jsonc new file mode 100644 index 0000000000000..19a75f7dd9ac1 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAtPosition-pp.baseline.jsonc @@ -0,0 +1,27 @@ +// === documentHighlights === +// === /tests/cases/fourslash/shims-pp/getOccurrencesAtPosition-pp.ts === +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } + + + +// === customWork === +// Added new line + + + +// === documentHighlights === +// === /tests/cases/fourslash/shims-pp/getOccurrencesAtPosition-pp.ts === +// +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesAtPosition-shims.baseline.jsonc b/tests/baselines/reference/getOccurrencesAtPosition-shims.baseline.jsonc new file mode 100644 index 0000000000000..a72a9b688c6d8 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesAtPosition-shims.baseline.jsonc @@ -0,0 +1,27 @@ +// === documentHighlights === +// === /tests/cases/fourslash/shims/getOccurrencesAtPosition-shims.ts === +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } + + + +// === customWork === +// Added new line + + + +// === documentHighlights === +// === /tests/cases/fourslash/shims/getOccurrencesAtPosition-shims.ts === +// +// +// interface A { +// <|[|{| kind: "reference" |}foo|]: string;|> +// } +// function foo(x: A) { +// x.[|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionConstructor.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionConstructor.baseline.jsonc new file mode 100644 index 0000000000000..2f1ba03217940 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionConstructor.baseline.jsonc @@ -0,0 +1,65 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts === +// let A = class Foo { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string);|> +// <|[|{| kind: "reference" |}constructor|](a?: any) { +// }|> +// } +// +// let B = class D { +// constructor(x: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts === +// let A = class Foo { +// <|[|{| kind: "reference" |}constructor|]();|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string);|> +// <|[|{| kind: "reference" |}constructor|](a?: any) { +// }|> +// } +// +// let B = class D { +// constructor(x: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts === +// let A = class Foo { +// <|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](y: string);|> +// <|[|{| kind: "reference" |}constructor|](a?: any) { +// }|> +// } +// +// let B = class D { +// constructor(x: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts === +// let A = class Foo { +// <|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string);|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](a?: any) { +// }|> +// } +// +// let B = class D { +// constructor(x: number) { +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionPrivate.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionPrivate.baseline.jsonc new file mode 100644 index 0000000000000..e8105de0f342d --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionPrivate.baseline.jsonc @@ -0,0 +1,102 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts === +// let A = class Foo { +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] foo; +// [|{| kind: "none" |}private|] private; +// constructor([|{| kind: "none" |}private|] y: string, public x: string) { +// } +// [|{| kind: "none" |}private|] method() { } +// public method2() { } +// [|{| kind: "none" |}private|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts === +// let A = class Foo { +// [|{| kind: "none" |}private|] foo; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] private; +// constructor([|{| kind: "none" |}private|] y: string, public x: string) { +// } +// [|{| kind: "none" |}private|] method() { } +// public method2() { } +// [|{| kind: "none" |}private|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts === +// let A = class Foo { +// [|{| kind: "none" |}private|] foo; +// [|{| kind: "none" |}private|] private; +// constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}private|] y: string, public x: string) { +// } +// [|{| kind: "none" |}private|] method() { } +// public method2() { } +// [|{| kind: "none" |}private|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts === +// let A = class Foo { +// [|{| kind: "none" |}private|] foo; +// [|{| kind: "none" |}private|] private; +// constructor([|{| kind: "none" |}private|] y: string, public x: string) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] method() { } +// public method2() { } +// [|{| kind: "none" |}private|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts === +// let A = class Foo { +// [|{| kind: "none" |}private|] foo; +// [|{| kind: "none" |}private|] private; +// constructor([|{| kind: "none" |}private|] y: string, public x: string) { +// } +// [|{| kind: "none" |}private|] method() { } +// public method2() { } +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionPublic.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionPublic.baseline.jsonc new file mode 100644 index 0000000000000..bd2b233105b92 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionPublic.baseline.jsonc @@ -0,0 +1,102 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts === +// let A = class Foo { +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] foo; +// [|{| kind: "none" |}public|] public; +// constructor([|{| kind: "none" |}public|] y: string, private x: string) { +// } +// [|{| kind: "none" |}public|] method() { } +// private method2() {} +// [|{| kind: "none" |}public|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts === +// let A = class Foo { +// [|{| kind: "none" |}public|] foo; +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] public; +// constructor([|{| kind: "none" |}public|] y: string, private x: string) { +// } +// [|{| kind: "none" |}public|] method() { } +// private method2() {} +// [|{| kind: "none" |}public|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts === +// let A = class Foo { +// [|{| kind: "none" |}public|] foo; +// [|{| kind: "none" |}public|] public; +// constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}public|] y: string, private x: string) { +// } +// [|{| kind: "none" |}public|] method() { } +// private method2() {} +// [|{| kind: "none" |}public|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts === +// let A = class Foo { +// [|{| kind: "none" |}public|] foo; +// [|{| kind: "none" |}public|] public; +// constructor([|{| kind: "none" |}public|] y: string, private x: string) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] method() { } +// private method2() {} +// [|{| kind: "none" |}public|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts === +// let A = class Foo { +// [|{| kind: "none" |}public|] foo; +// [|{| kind: "none" |}public|] public; +// constructor([|{| kind: "none" |}public|] y: string, private x: string) { +// } +// [|{| kind: "none" |}public|] method() { } +// private method2() {} +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] static static() { } +// } +// +// let B = class D { +// constructor(private x: number) { +// } +// private test() {} +// public test2() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionStatic.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionStatic.baseline.jsonc new file mode 100644 index 0000000000000..5f90bac4d72c5 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionStatic.baseline.jsonc @@ -0,0 +1,89 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts === +// let A = class Foo { +// public /*HIGHLIGHTS*/[|{| kind: "none" |}static|] foo; +// [|{| kind: "none" |}static|] a; +// constructor(public y: string, private x: string) { +// } +// public method() { } +// private method2() {} +// public [|{| kind: "none" |}static|] static() { } +// private [|{| kind: "none" |}static|] static2() { } +// } +// +// let B = class D { +// static a; +// constructor(private x: number) { +// } +// private static test() {} +// public static test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts === +// let A = class Foo { +// public [|{| kind: "none" |}static|] foo; +// /*HIGHLIGHTS*/[|{| kind: "none" |}static|] a; +// constructor(public y: string, private x: string) { +// } +// public method() { } +// private method2() {} +// public [|{| kind: "none" |}static|] static() { } +// private [|{| kind: "none" |}static|] static2() { } +// } +// +// let B = class D { +// static a; +// constructor(private x: number) { +// } +// private static test() {} +// public static test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts === +// let A = class Foo { +// public [|{| kind: "none" |}static|] foo; +// [|{| kind: "none" |}static|] a; +// constructor(public y: string, private x: string) { +// } +// public method() { } +// private method2() {} +// public /*HIGHLIGHTS*/[|{| kind: "none" |}static|] static() { } +// private [|{| kind: "none" |}static|] static2() { } +// } +// +// let B = class D { +// static a; +// constructor(private x: number) { +// } +// private static test() {} +// public static test2() {} +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts === +// let A = class Foo { +// public [|{| kind: "none" |}static|] foo; +// [|{| kind: "none" |}static|] a; +// constructor(public y: string, private x: string) { +// } +// public method() { } +// private method2() {} +// public [|{| kind: "none" |}static|] static() { } +// private /*HIGHLIGHTS*/[|{| kind: "none" |}static|] static2() { } +// } +// +// let B = class D { +// static a; +// constructor(private x: number) { +// } +// private static test() {} +// public static test2() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionStaticThis.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionStaticThis.baseline.jsonc new file mode 100644 index 0000000000000..333637861d2bb --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionStaticThis.baseline.jsonc @@ -0,0 +1,247 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// public staticX; +// constructor() { +// this; +// this.x; +// this.y; +// this.z; +// } +// foo() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return this.x; +// } +// +// static bar() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].staticX; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// public staticX; +// constructor() { +// this; +// this.x; +// this.y; +// this.z; +// } +// foo() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return this.x; +// } +// +// static bar() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].staticX; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// public staticX; +// constructor() { +// this; +// this.x; +// this.y; +// this.z; +// } +// foo() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return this.x; +// } +// +// static bar() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].staticX; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// public staticX; +// constructor() { +// this; +// this.x; +// this.y; +// this.z; +// } +// foo() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return this.x; +// } +// +// static bar() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].staticX; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// public staticX; +// constructor() { +// this; +// this.x; +// this.y; +// this.z; +// } +// foo() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return this.x; +// } +// +// static bar() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].staticX; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesClassExpressionThis.baseline.jsonc b/tests/baselines/reference/getOccurrencesClassExpressionThis.baseline.jsonc new file mode 100644 index 0000000000000..bb8244d48dc7b --- /dev/null +++ b/tests/baselines/reference/getOccurrencesClassExpressionThis.baseline.jsonc @@ -0,0 +1,429 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return [|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesClassExpressionThis.ts === +// var x = class C { +// public x; +// public y; +// public z; +// constructor() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|].x; +// [|{| kind: "reference" |}this|].y; +// [|{| kind: "reference" |}this|].z; +// } +// foo() { +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].x; +// } +// +// static bar() { +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConst01.baseline.jsonc b/tests/baselines/reference/getOccurrencesConst01.baseline.jsonc new file mode 100644 index 0000000000000..c976745eac7e5 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConst01.baseline.jsonc @@ -0,0 +1,19 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst01.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}const|] enum E1 { +// v1, +// v2 +// } +// +// const c = 0; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst01.ts === +// const enum E1 { +// v1, +// v2 +// } +// +// /*HIGHLIGHTS*/const c = 0; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConst02.baseline.jsonc b/tests/baselines/reference/getOccurrencesConst02.baseline.jsonc new file mode 100644 index 0000000000000..1d52f130a8007 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConst02.baseline.jsonc @@ -0,0 +1,53 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst02.ts === +// module m { +// declare const x; +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}const|] enum E { +// } +// } +// +// declare const x; +// declare const enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst02.ts === +// module m { +// declare const x; +// declare const enum E { +// } +// } +// +// declare const x; +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}const|] enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst02.ts === +// module m { +// declare /*HIGHLIGHTS*/const x; +// declare const enum E { +// } +// } +// +// declare const x; +// declare const enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst02.ts === +// module m { +// declare const x; +// declare const enum E { +// } +// } +// +// declare /*HIGHLIGHTS*/const x; +// declare const enum E { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConst03.baseline.jsonc b/tests/baselines/reference/getOccurrencesConst03.baseline.jsonc new file mode 100644 index 0000000000000..8d53f6fa2fa62 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConst03.baseline.jsonc @@ -0,0 +1,53 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst03.ts === +// module m { +// export const x; +// export /*HIGHLIGHTS*/[|{| kind: "none" |}const|] enum E { +// } +// } +// +// export const x; +// export const enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst03.ts === +// module m { +// export const x; +// export const enum E { +// } +// } +// +// export const x; +// export /*HIGHLIGHTS*/[|{| kind: "none" |}const|] enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst03.ts === +// module m { +// export /*HIGHLIGHTS*/const x; +// export const enum E { +// } +// } +// +// export const x; +// export const enum E { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst03.ts === +// module m { +// export const x; +// export const enum E { +// } +// } +// +// export /*HIGHLIGHTS*/const x; +// export const enum E { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConst04.baseline.jsonc b/tests/baselines/reference/getOccurrencesConst04.baseline.jsonc new file mode 100644 index 0000000000000..3735bbed64d24 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConst04.baseline.jsonc @@ -0,0 +1,27 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst04.ts === +// export const class C { +// private static [|{| kind: "none" |}c/*HIGHLIGHTS*/onst|] foo; +// constructor(public const foo) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst04.ts === +// export const class C { +// <|private static const [|{| kind: "reference" |}f/*HIGHLIGHTS*/oo|];|> +// constructor(public const foo) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConst04.ts === +// export const class C { +// private static [|{| kind: "none" |}const|] foo; +// constructor(public con/*HIGHLIGHTS*/st foo) { +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConstructor.baseline.jsonc b/tests/baselines/reference/getOccurrencesConstructor.baseline.jsonc new file mode 100644 index 0000000000000..98d66225d3aae --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConstructor.baseline.jsonc @@ -0,0 +1,85 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConstructor.ts === +// class C { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string, x: number);|> +// <|[|{| kind: "reference" |}constructor|](a?: any, ...r: any[]) { +// if (a === undefined && r.length === 0) { +// return; +// } +// +// return; +// }|> +// } +// +// class D { +// constructor(public x: number, public y: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConstructor.ts === +// class C { +// <|[|{| kind: "reference" |}constructor|]();|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string, x: number);|> +// <|[|{| kind: "reference" |}constructor|](a?: any, ...r: any[]) { +// if (a === undefined && r.length === 0) { +// return; +// } +// +// return; +// }|> +// } +// +// class D { +// constructor(public x: number, public y: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConstructor.ts === +// class C { +// <|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](y: string, x: number);|> +// <|[|{| kind: "reference" |}constructor|](a?: any, ...r: any[]) { +// if (a === undefined && r.length === 0) { +// return; +// } +// +// return; +// }|> +// } +// +// class D { +// constructor(public x: number, public y: number) { +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConstructor.ts === +// class C { +// <|[|{| kind: "reference" |}constructor|]();|> +// <|[|{| kind: "reference" |}constructor|](x: number);|> +// <|[|{| kind: "reference" |}constructor|](y: string, x: number);|> +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](a?: any, ...r: any[]) { +// if (a === undefined && r.length === 0) { +// return; +// } +// +// return; +// }|> +// } +// +// class D { +// constructor(public x: number, public y: number) { +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesConstructor2.baseline.jsonc b/tests/baselines/reference/getOccurrencesConstructor2.baseline.jsonc new file mode 100644 index 0000000000000..696419c5c32b7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesConstructor2.baseline.jsonc @@ -0,0 +1,19 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesConstructor2.ts === +// class C { +// constructor(); +// constructor(x: number); +// constructor(y: string, x: number); +// constructor(a?: any, ...r: any[]) { +// if (a === undefined && r.length === 0) { +// return; +// } +// +// return; +// } +// } +// +// class D { +// /*HIGHLIGHTS*/<|[|{| kind: "reference" |}constructor|](public x: number, public y: number) { +// }|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesDeclare1.baseline.jsonc b/tests/baselines/reference/getOccurrencesDeclare1.baseline.jsonc new file mode 100644 index 0000000000000..979bd69d6302f --- /dev/null +++ b/tests/baselines/reference/getOccurrencesDeclare1.baseline.jsonc @@ -0,0 +1,168 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// [|{| kind: "none" |}declare|] var ambientThing: number; +// export var exportedThing = 10; +// [|{| kind: "none" |}declare|] function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export [|{| kind: "none" |}declare|] module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] var ambientThing: number; +// export var exportedThing = 10; +// [|{| kind: "none" |}declare|] function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export [|{| kind: "none" |}declare|] module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// [|{| kind: "none" |}declare|] var ambientThing: number; +// export var exportedThing = 10; +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesDeclare2.baseline.jsonc b/tests/baselines/reference/getOccurrencesDeclare2.baseline.jsonc new file mode 100644 index 0000000000000..98f268faf55a7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesDeclare2.baseline.jsonc @@ -0,0 +1,55 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesDeclare3.baseline.jsonc b/tests/baselines/reference/getOccurrencesDeclare3.baseline.jsonc new file mode 100644 index 0000000000000..44fbce8967014 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesDeclare3.baseline.jsonc @@ -0,0 +1,257 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare3.ts === +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] var x; +// export [|{| kind: "none" |}declare|] var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// [|{| kind: "none" |}declare|] export var v1, v2; +// [|{| kind: "none" |}declare|] module dm { } +// export class EC { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare3.ts === +// +// [|{| kind: "none" |}declare|] var x; +// export /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// [|{| kind: "none" |}declare|] export var v1, v2; +// [|{| kind: "none" |}declare|] module dm { } +// export class EC { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare3.ts === +// +// [|{| kind: "none" |}declare|] var x; +// export [|{| kind: "none" |}declare|] var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] export var v1, v2; +// [|{| kind: "none" |}declare|] module dm { } +// export class EC { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesDeclare3.ts === +// +// [|{| kind: "none" |}declare|] var x; +// export [|{| kind: "none" |}declare|] var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// [|{| kind: "none" |}declare|] export var v1, v2; +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] module dm { } +// export class EC { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesExport1.baseline.jsonc b/tests/baselines/reference/getOccurrencesExport1.baseline.jsonc new file mode 100644 index 0000000000000..4c7631f111fe7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesExport1.baseline.jsonc @@ -0,0 +1,282 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport1.ts === +// module m { +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// [|{| kind: "none" |}export|] interface I1 { +// } +// +// [|{| kind: "none" |}export|] declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// [|{| kind: "none" |}export|] module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// [|{| kind: "none" |}export|] var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport1.ts === +// module m { +// [|{| kind: "none" |}export|] class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] interface I1 { +// } +// +// [|{| kind: "none" |}export|] declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// [|{| kind: "none" |}export|] module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// [|{| kind: "none" |}export|] var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport1.ts === +// module m { +// [|{| kind: "none" |}export|] class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// [|{| kind: "none" |}export|] interface I1 { +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// [|{| kind: "none" |}export|] module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// [|{| kind: "none" |}export|] var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport1.ts === +// module m { +// [|{| kind: "none" |}export|] class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// [|{| kind: "none" |}export|] interface I1 { +// } +// +// [|{| kind: "none" |}export|] declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// [|{| kind: "none" |}export|] var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport1.ts === +// module m { +// [|{| kind: "none" |}export|] class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// [|{| kind: "none" |}export|] interface I1 { +// } +// +// [|{| kind: "none" |}export|] declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// [|{| kind: "none" |}export|] module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesExport2.baseline.jsonc b/tests/baselines/reference/getOccurrencesExport2.baseline.jsonc new file mode 100644 index 0000000000000..540f9262b4a08 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesExport2.baseline.jsonc @@ -0,0 +1,55 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesExport3.baseline.jsonc b/tests/baselines/reference/getOccurrencesExport3.baseline.jsonc new file mode 100644 index 0000000000000..6f95d47876ce0 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesExport3.baseline.jsonc @@ -0,0 +1,192 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport3.ts === +// +// declare var x; +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] declare var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// declare [|{| kind: "none" |}export|] var v1, v2; +// declare module dm { } +// [|{| kind: "none" |}export|] class EC { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport3.ts === +// +// declare var x; +// [|{| kind: "none" |}export|] declare var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}export|] var v1, v2; +// declare module dm { } +// [|{| kind: "none" |}export|] class EC { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesExport3.ts === +// +// declare var x; +// [|{| kind: "none" |}export|] declare var y, z; +// +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } +// +// declare [|{| kind: "none" |}export|] var v1, v2; +// declare module dm { } +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] class EC { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElse.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElse.baseline.jsonc new file mode 100644 index 0000000000000..51df059f24f23 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElse.baseline.jsonc @@ -0,0 +1,179 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// /*HIGHLIGHTS*/[|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|] { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElse2.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElse2.baseline.jsonc new file mode 100644 index 0000000000000..392f95a5da589 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElse2.baseline.jsonc @@ -0,0 +1,49 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse2.ts === +// if (true) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|]{ +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse2.ts === +// if (true) { +// [|{| kind: "none" |}if|] (false) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|]{ +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElse3.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElse3.baseline.jsonc new file mode 100644 index 0000000000000..a34f4d73ecd44 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElse3.baseline.jsonc @@ -0,0 +1,49 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse3.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (true) { +// } +// [|{| kind: "none" |}else|] { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse3.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// [|{| kind: "none" |}if|] (true) { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|] { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElse4.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElse4.baseline.jsonc new file mode 100644 index 0000000000000..7d61eab1cd479 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElse4.baseline.jsonc @@ -0,0 +1,75 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse4.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse4.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse4.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// [|{| kind: "none" |}i/*HIGHLIGHTS*/f|] (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElse5.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElse5.baseline.jsonc new file mode 100644 index 0000000000000..1f47d70529860 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElse5.baseline.jsonc @@ -0,0 +1,335 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (false) { +// } +// [|{| kind: "none" |}else|] { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|]/*HIGHLIGHTS*/ { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (true) { +// } +// [|{| kind: "none" |}else|] { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// [|{| kind: "none" |}if|] (true) { +// } +// [|{| kind: "none" |}else|]/*HIGHLIGHTS*/ { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (false) +// if (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// if (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (true) +// var x = undefined; +// } +// } +// else if (null) { +// } +// else /* whar garbl */ if (undefined) { +// } +// else +// if (false) { +// } +// else { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else/*HIGHLIGHTS*/ if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|]/*HIGHLIGHTS*/ /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|]/*HIGHLIGHTS*/ +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|]/*HIGHLIGHTS*/ (false) { +// } +// [|{| kind: "none" |}else|] { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElse5.ts === +// [|{| kind: "none" |}if|] (true) { +// if (false) { +// } +// else { +// } +// if (true) { +// } +// else { +// if (false) +// if (true) +// var x = undefined; +// } +// } +// [|{| kind: "reference" |}else if|] (null) { +// } +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (undefined) { +// } +// [|{| kind: "none" |}else|] +// [|{| kind: "none" |}if|] (false) { +// } +// [|{| kind: "none" |}else|]/*HIGHLIGHTS*/ { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIfElseBroken.baseline.jsonc b/tests/baselines/reference/getOccurrencesIfElseBroken.baseline.jsonc new file mode 100644 index 0000000000000..6a591463e0787 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIfElseBroken.baseline.jsonc @@ -0,0 +1,69 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (true) { +// var x = 1; +// } +// [|{| kind: "reference" |}else if|] () +// [|{| kind: "reference" |}else if|] +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (if (true) { } else { }) +// else + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// [|{| kind: "none" |}if|] (true) { +// var x = 1; +// } +// /*HIGHLIGHTS*/[|{| kind: "reference" |}else if|] () +// [|{| kind: "reference" |}else if|] +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (if (true) { } else { }) +// else + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// [|{| kind: "none" |}if|] (true) { +// var x = 1; +// } +// [|{| kind: "reference" |}else if|] () +// /*HIGHLIGHTS*/[|{| kind: "reference" |}else if|] +// [|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (if (true) { } else { }) +// else + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// [|{| kind: "none" |}if|] (true) { +// var x = 1; +// } +// [|{| kind: "reference" |}else if|] () +// [|{| kind: "reference" |}else if|] +// /*HIGHLIGHTS*/[|{| kind: "none" |}else|] /* whar garbl */ [|{| kind: "none" |}if|] (if (true) { } else { }) +// else + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// [|{| kind: "none" |}if|] (true) { +// var x = 1; +// } +// [|{| kind: "reference" |}else if|] () +// [|{| kind: "reference" |}else if|] +// [|{| kind: "none" |}else|] /* whar garbl */ /*HIGHLIGHTS*/[|{| kind: "none" |}if|] (if (true) { } else { }) +// else + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIfElseBroken.ts === +// if (true) { +// var x = 1; +// } +// else if () +// else if +// else /* whar garbl */ if ([|{| kind: "none" |}i/*HIGHLIGHTS*/f|] (true) { } [|{| kind: "none" |}else|] { }) +// else \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfArrowFunction.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfArrowFunction.baseline.jsonc index b4bba3b8be60d..47fc530022c97 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfArrowFunction.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfArrowFunction.baseline.jsonc @@ -1,327 +1,249 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === -// /*FIND ALL REFS*/var [|f|] = x => x + 1; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}f|] = x => x + 1;|> // [|f|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "kind": "var", - "name": "var f: (x: any) => any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === + // /*FIND ALL REFS*/<|var [|f|] = x => x + 1;|> + // f(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: (x: any) => any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === -// var /*FIND ALL REFS*/[|f|] = x => x + 1; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|] = x => x + 1;|> // [|f|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "kind": "var", - "name": "var f: (x: any) => any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === + // <|var /*FIND ALL REFS*/[|f|] = x => x + 1;|> + // f(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: (x: any) => any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === -// var [|f|] = x => x + 1; +// <|var [|{| isWriteAccess: true |}f|] = x => x + 1;|> // /*FIND ALL REFS*/[|f|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "kind": "var", - "name": "var f: (x: any) => any", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfArrowFunction.ts === + // <|var [|f|] = x => x + 1;|> + // /*FIND ALL REFS*/f(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: (x: any) => any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfBindingPattern.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfBindingPattern.baseline.jsonc index bb5f4643e5920..850f1d325191c 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfBindingPattern.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfBindingPattern.baseline.jsonc @@ -1,297 +1,191 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === -// const { /*FIND ALL REFS*/[|x|], y } = { [|x|]: 1, y: 2 }; -// const z = [|x|]; +// <|const { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|], y } = { <|[|{| defId: 1, isWriteAccess: true |}x|]: 1|>, y: 2 };|> +// const z = [|{| defId: 0 |}x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === + // <|const { /*FIND ALL REFS*/[|{| defId: 0 |}x|], y } = { <|[|{| defId: 1 |}x|]: 1|>, y: 2 };|> + // const z = x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 19, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "contextSpan": { - "start": 19, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === -// const { [|x|], y } = { /*FIND ALL REFS*/[|x|]: 1, y: 2 }; +// <|const { [|{| isWriteAccess: true |}x|], y } = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}x|]: 1|>, y: 2 };|> // const z = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 19, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 4 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 19, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "contextSpan": { - "start": 19, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === + // const { x, y } = { /*FIND ALL REFS*/<|[|x|]: 1|>, y: 2 }; + // const z = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === -// const { [|x|], y } = { x: 1, y: 2 }; +// <|const { [|{| isWriteAccess: true |}x|], y } = { x: 1, y: 2 };|> // const z = /*FIND ALL REFS*/[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "kind": "const", - "name": "const x: number", - "textSpan": { - "start": 8, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 43, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfBindingPattern.ts === + // <|const { [|x|], y } = { x: 1, y: 2 };|> + // const z = /*FIND ALL REFS*/x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: number", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfClass.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfClass.baseline.jsonc index 738b57354eff6..28d1e457cfa40 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfClass.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfClass.baseline.jsonc @@ -1,198 +1,135 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === -// /*FIND ALL REFS*/class [|C|] { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}C|] { // n: number; // constructor() { // this.n = 12; // } -// } +// }|> // let c = new [|C|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 73 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "contextSpan": { - "start": 0, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === + // /*FIND ALL REFS*/<|class [|C|] { + // n: number; + // constructor() { + // this.n = 12; + // } + // }|> + // let c = new C(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === -// class /*FIND ALL REFS*/[|C|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}C|] { // n: number; // constructor() { // this.n = 12; // } -// } +// }|> // let c = new [|C|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 73 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "contextSpan": { - "start": 0, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === + // <|class /*FIND ALL REFS*/[|C|] { + // n: number; + // constructor() { + // this.n = 12; + // } + // }|> + // let c = new C(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // n: number; // constructor() { // this.n = 12; // } -// } +// }|> // let c = new /*FIND ALL REFS*/[|C|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 73 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "contextSpan": { - "start": 0, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts === + // <|class [|C|] { + // n: number; + // constructor() { + // this.n = 12; + // } + // }|> + // let c = new /*FIND ALL REFS*/C(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfComputedProperty.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfComputedProperty.baseline.jsonc index 8bb25843ede35..8b7a6abf10a8e 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfComputedProperty.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfComputedProperty.baseline.jsonc @@ -1,271 +1,179 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === +// let o = { /*FIND ALL REFS*/["foo"]: 12 }; +// let y = o.foo; +// let z = o['foo']; + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === -// let o = { ["/*FIND ALL REFS*/[|foo|]"]: 12 }; +// let o = { <|["/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|]"]: 12|> }; // let y = o.[|foo|]; // let z = o['[|foo|]']; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "kind": "property", - "name": "(property) [\"foo\"]: number", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "[\"foo\"]", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "contextSpan": { - "start": 10, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 35, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 51, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === + // let o = { <|["/*FIND ALL REFS*/[|foo|]"]: 12|> }; + // let y = o.foo; + // let z = o['foo']; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) [\"foo\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "[\"foo\"]", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === -// let o = { ["[|foo|]"]: 12 }; +// let o = { <|["[|{| isWriteAccess: true |}foo|]"]: 12|> }; // let y = o./*FIND ALL REFS*/[|foo|]; // let z = o['[|foo|]']; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "kind": "property", - "name": "(property) [\"foo\"]: number", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "[\"foo\"]", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "contextSpan": { - "start": 10, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 35, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 51, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === + // let o = { <|["[|foo|]"]: 12|> }; + // let y = o./*FIND ALL REFS*/foo; + // let z = o['foo']; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) [\"foo\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "[\"foo\"]", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === -// let o = { ["[|foo|]"]: 12 }; +// let o = { <|["[|{| isWriteAccess: true |}foo|]"]: 12|> }; // let y = o.[|foo|]; // let z = o['/*FIND ALL REFS*/[|foo|]']; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "kind": "property", - "name": "(property) [\"foo\"]: number", - "textSpan": { - "start": 12, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "[\"foo\"]", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "contextSpan": { - "start": 10, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 35, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 51, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfComputedProperty.ts === + // let o = { <|["[|foo|]"]: 12|> }; + // let y = o.foo; + // let z = o['/*FIND ALL REFS*/foo']; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) [\"foo\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "[\"foo\"]", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfEnum.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfEnum.baseline.jsonc index 0674c82b03567..7a529720fbb33 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfEnum.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfEnum.baseline.jsonc @@ -1,192 +1,123 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === -// /*FIND ALL REFS*/enum [|E|] { +// /*FIND ALL REFS*/<|enum [|{| isWriteAccess: true, isDefinition: true |}E|] { // First, // Second -// } +// }|> // let first = [|E|].First; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === + // /*FIND ALL REFS*/<|enum [|E|] { + // First, + // Second + // }|> + // let first = E.First; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === -// enum /*FIND ALL REFS*/[|E|] { +// <|enum /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}E|] { // First, // Second -// } +// }|> // let first = [|E|].First; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === + // <|enum /*FIND ALL REFS*/[|E|] { + // First, + // Second + // }|> + // let first = E.First; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === -// enum [|E|] { +// <|enum [|{| isWriteAccess: true |}E|] { // First, // Second -// } +// }|> // let first = /*FIND ALL REFS*/[|E|].First; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 5, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 45, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts === + // <|enum [|E|] { + // First, + // Second + // }|> + // let first = /*FIND ALL REFS*/E.First; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfExport.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfExport.baseline.jsonc index 6b63823c32d17..52860e3558633 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfExport.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfExport.baseline.jsonc @@ -1,333 +1,237 @@ +// === findAllReferences === +// === /tests/cases/fourslash/m.ts === +// <|export var /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] = 12;|> + // === /tests/cases/fourslash/main.ts === -// import { [|x|] } from "./m"; -// const y = [|x|]; +// <|import { [|{| defId: 1, isWriteAccess: true |}x|] } from "./m";|> +// const y = [|{| defId: 1 |}x|]; -// === /tests/cases/fourslash/m.ts === -// export var /*FIND ALL REFS*/[|x|] = 12; + // === Definitions === + // === /tests/cases/fourslash/m.ts === + // <|export var /*FIND ALL REFS*/[|{| defId: 0 |}x|] = 12;|> + + // === /tests/cases/fourslash/main.ts === + // <|import { [|{| defId: 1 |}x|] } from "./m";|> + // const y = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/m.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/m.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/main.ts", - "kind": "alias", - "name": "(alias) var x: number\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/main.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/main.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: number\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/main.ts === -// import { /*FIND ALL REFS*/[|x|] } from "./m"; -// const y = [|x|]; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}x|] } from "./m";|> +// const y = [|{| defId: 0 |}x|]; // === /tests/cases/fourslash/m.ts === -// export var [|x|] = 12; +// <|export var [|{| defId: 1, isWriteAccess: true |}x|] = 12;|> + + // === Definitions === + // === /tests/cases/fourslash/main.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}x|] } from "./m";|> + // const y = x; + + // === /tests/cases/fourslash/m.ts === + // <|export var [|{| defId: 1 |}x|] = 12;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/main.ts", - "kind": "alias", - "name": "(alias) var x: number\nimport x", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/main.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/main.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var x: number\nimport x", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/m.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/m.ts", - "contextSpan": { - "start": 0, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfFunction.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfFunction.baseline.jsonc index 10dd653e4bf65..6ef5263b286e8 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfFunction.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfFunction.baseline.jsonc @@ -1,294 +1,219 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === -// /*FIND ALL REFS*/function [|func|](x: number) { -// } +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}func|](x: number) { +// }|> // [|func|](x) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "kind": "function", - "name": "function func(x: number): void", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "func", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 29, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === + // /*FIND ALL REFS*/<|function [|func|](x: number) { + // }|> + // func(x) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function func(x: number): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "func", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === -// function /*FIND ALL REFS*/[|func|](x: number) { -// } +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}func|](x: number) { +// }|> // [|func|](x) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "kind": "function", - "name": "function func(x: number): void", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "func", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 29, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === + // <|function /*FIND ALL REFS*/[|func|](x: number) { + // }|> + // func(x) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function func(x: number): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "func", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === -// function [|func|](x: number) { -// } +// <|function [|{| isWriteAccess: true |}func|](x: number) { +// }|> // /*FIND ALL REFS*/[|func|](x) -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "kind": "function", - "name": "function func(x: number): void", - "textSpan": { - "start": 9, - "length": 4 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "func", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfFunction.ts === + // <|function [|func|](x: number) { + // }|> + // /*FIND ALL REFS*/func(x) + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function func(x: number): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "func", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfInterface.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfInterface.baseline.jsonc index 8c6da3e1af5c0..6f6e6ba66d6d0 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfInterface.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfInterface.baseline.jsonc @@ -1,189 +1,117 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === -// /*FIND ALL REFS*/interface [|I|] { +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}I|] { // p: number; -// } +// }|> // let i: [|I|] = { p: 12 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === + // /*FIND ALL REFS*/<|interface [|I|] { + // p: number; + // }|> + // let i: I = { p: 12 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === -// interface /*FIND ALL REFS*/[|I|] { +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}I|] { // p: number; -// } +// }|> // let i: [|I|] = { p: 12 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === + // <|interface /*FIND ALL REFS*/[|I|] { + // p: number; + // }|> + // let i: I = { p: 12 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === -// interface [|I|] { +// <|interface [|{| isWriteAccess: true |}I|] { // p: number; -// } +// }|> // let i: /*FIND ALL REFS*/[|I|] = { p: 12 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "contextSpan": { - "start": 0, - "length": 30 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterface.ts === + // <|interface [|I|] { + // p: number; + // }|> + // let i: /*FIND ALL REFS*/I = { p: 12 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfInterfaceClassMerge.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfInterfaceClassMerge.baseline.jsonc index 15ff97db6c3f1..76cdf0796a416 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfInterfaceClassMerge.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfInterfaceClassMerge.baseline.jsonc @@ -1,981 +1,589 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// /*FIND ALL REFS*/interface [|Numbers|] { +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // /*FIND ALL REFS*/<|interface [|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface /*FIND ALL REFS*/[|Numbers|] { +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface /*FIND ALL REFS*/[|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// /*FIND ALL REFS*/interface [|Numbers|] { +// }|> +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // /*FIND ALL REFS*/interface Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// interface /*FIND ALL REFS*/[|Numbers|] { +// }|> +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // interface /*FIND ALL REFS*/Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// /*FIND ALL REFS*/class [|Numbers|] { +// }|> +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // /*FIND ALL REFS*/class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // m: number; -// } -// class /*FIND ALL REFS*/[|Numbers|] { +// }|> +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // class /*FIND ALL REFS*/Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: /*FIND ALL REFS*/[|Numbers|] = new [|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: /*FIND ALL REFS*/Numbers = new Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === -// interface [|Numbers|] { +// <|interface [|{| isWriteAccess: true |}Numbers|] { // p: number; -// } -// interface [|Numbers|] { +// }|> +// <|interface [|{| isWriteAccess: true |}Numbers|] { // m: number; -// } -// class [|Numbers|] { +// }|> +// <|class [|{| isWriteAccess: true |}Numbers|] { // f(n: number) { // return this.p + this.m + n; // } -// } +// }|> // let i: [|Numbers|] = new /*FIND ALL REFS*/[|Numbers|](); // let x = i.f(i.p + i.m); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "kind": "class", - "name": "class Numbers\ninterface Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 36 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 0, - "length": 36 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 47, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 37, - "length": 36 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 80, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "contextSpan": { - "start": 74, - "length": 78 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 160, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 174, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfInterfaceClassMerge.ts === + // <|interface [|Numbers|] { + // p: number; + // }|> + // interface Numbers { + // m: number; + // } + // class Numbers { + // f(n: number) { + // return this.p + this.m + n; + // } + // } + // let i: Numbers = new /*FIND ALL REFS*/Numbers(); + // let x = i.f(i.p + i.m); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Numbers\ninterface Numbers", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfNamespace.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfNamespace.baseline.jsonc index 4d1e9380d9fb0..2178365085918 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfNamespace.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfNamespace.baseline.jsonc @@ -1,189 +1,117 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === -// /*FIND ALL REFS*/namespace [|Numbers|] { +// /*FIND ALL REFS*/<|namespace [|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // export var n = 12; -// } +// }|> // let x = [|Numbers|].n + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "kind": "module", - "name": "namespace Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 53, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === + // /*FIND ALL REFS*/<|namespace [|Numbers|] { + // export var n = 12; + // }|> + // let x = Numbers.n + 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace Numbers", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === -// namespace /*FIND ALL REFS*/[|Numbers|] { +// <|namespace /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Numbers|] { // export var n = 12; -// } +// }|> // let x = [|Numbers|].n + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "kind": "module", - "name": "namespace Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 53, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === + // <|namespace /*FIND ALL REFS*/[|Numbers|] { + // export var n = 12; + // }|> + // let x = Numbers.n + 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace Numbers", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === -// namespace [|Numbers|] { +// <|namespace [|{| isWriteAccess: true |}Numbers|] { // export var n = 12; -// } +// }|> // let x = /*FIND ALL REFS*/[|Numbers|].n + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "kind": "module", - "name": "namespace Numbers", - "textSpan": { - "start": 10, - "length": 7 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Numbers", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 53, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNamespace.ts === + // <|namespace [|Numbers|] { + // export var n = 12; + // }|> + // let x = /*FIND ALL REFS*/Numbers.n + 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace Numbers", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Numbers", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfNumberNamedProperty.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfNumberNamedProperty.baseline.jsonc index 7a1a67f393024..6187a70f76aac 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfNumberNamedProperty.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfNumberNamedProperty.baseline.jsonc @@ -1,161 +1,109 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts === -// let o = { /*FIND ALL REFS*/[|1|]: 12 }; +// let o = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}1|]: 12|> }; // let y = o[[|1|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "kind": "property", - "name": "(property) 1: number", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "contextSpan": { - "start": 10, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts === + // let o = { /*FIND ALL REFS*/<|[|1|]: 12|> }; + // let y = o[1]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) 1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts === -// let o = { [|1|]: 12 }; +// let o = { <|[|{| isWriteAccess: true |}1|]: 12|> }; // let y = o[/*FIND ALL REFS*/[|1|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "kind": "property", - "name": "(property) 1: number", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "contextSpan": { - "start": 10, - "length": 5 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfNumberNamedProperty.ts === + // let o = { <|[|1|]: 12|> }; + // let y = o[/*FIND ALL REFS*/1]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) 1: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfParameter.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfParameter.baseline.jsonc index 3e9020cdadc06..c844d1fac0f08 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfParameter.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfParameter.baseline.jsonc @@ -1,163 +1,113 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts === -// function f(/*FIND ALL REFS*/[|x|]: number) { +// function f(/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}x|]: number|>) { // return [|x|] + 1 // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "kind": "parameter", - "name": "(parameter) x: number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 11, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "contextSpan": { - "start": 11, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts === + // function f(/*FIND ALL REFS*/<|[|x|]: number|>) { + // return x + 1 + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts === -// function f([|x|]: number) { +// function f(<|[|{| isWriteAccess: true |}x|]: number|>) { // return /*FIND ALL REFS*/[|x|] + 1 // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "kind": "parameter", - "name": "(parameter) x: number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 11, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "contextSpan": { - "start": 11, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfParameter.ts === + // function f(<|[|x|]: number|>) { + // return /*FIND ALL REFS*/x + 1 + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfStringNamedProperty.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfStringNamedProperty.baseline.jsonc index 04326efa6f9d7..ae2cfb5a33c8e 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfStringNamedProperty.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfStringNamedProperty.baseline.jsonc @@ -1,243 +1,165 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === -// let o = { /*FIND ALL REFS*/"[|x|]": 12 }; +// let o = { /*FIND ALL REFS*/<|"[|{| isWriteAccess: true, isDefinition: true |}x|]": 12|> }; // let y = o.[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "kind": "property", - "name": "(property) \"x\": number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"x\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === + // let o = { /*FIND ALL REFS*/<|"[|x|]": 12|> }; + // let y = o.x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"x\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"x\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === -// let o = { "/*FIND ALL REFS*/[|x|]": 12 }; +// let o = { <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]": 12|> }; // let y = o.[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "kind": "property", - "name": "(property) \"x\": number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"x\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === + // let o = { <|"/*FIND ALL REFS*/[|x|]": 12|> }; + // let y = o.x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"x\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"x\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === -// let o = { "[|x|]": 12 }; +// let o = { <|"[|{| isWriteAccess: true |}x|]": 12|> }; // let y = o./*FIND ALL REFS*/[|x|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "kind": "property", - "name": "(property) \"x\": number", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"x\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "contextSpan": { - "start": 10, - "length": 7 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfStringNamedProperty.ts === + // let o = { <|"[|x|]": 12|> }; + // let y = o./*FIND ALL REFS*/x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"x\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"x\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfTypeAlias.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfTypeAlias.baseline.jsonc index 7a7b26a2b73a7..5923582a0709d 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfTypeAlias.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfTypeAlias.baseline.jsonc @@ -1,231 +1,153 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === -// /*FIND ALL REFS*/type [|Alias|]= number; +// /*FIND ALL REFS*/<|type [|{| isWriteAccess: true, isDefinition: true |}Alias|]= number;|> // let n: [|Alias|] = 12; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "kind": "type", - "name": "type Alias = number", - "textSpan": { - "start": 5, - "length": 5 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === + // /*FIND ALL REFS*/<|type [|Alias|]= number;|> + // let n: Alias = 12; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Alias = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === -// type /*FIND ALL REFS*/[|Alias|]= number; +// <|type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Alias|]= number;|> // let n: [|Alias|] = 12; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "kind": "type", - "name": "type Alias = number", - "textSpan": { - "start": 5, - "length": 5 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 27, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === + // <|type /*FIND ALL REFS*/[|Alias|]= number;|> + // let n: Alias = 12; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Alias = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === -// type [|Alias|]= number; +// <|type [|{| isWriteAccess: true |}Alias|]= number;|> // let n: /*FIND ALL REFS*/[|Alias|] = 12; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "kind": "type", - "name": "type Alias = number", - "textSpan": { - "start": 5, - "length": 5 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 5, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "contextSpan": { - "start": 0, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 27, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfTypeAlias.ts === + // <|type [|Alias|]= number;|> + // let n: /*FIND ALL REFS*/Alias = 12; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Alias = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsDefinitionOfVariable.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsDefinitionOfVariable.baseline.jsonc index 86779092d6d7e..02ce3cabb3353 100644 --- a/tests/baselines/reference/getOccurrencesIsDefinitionOfVariable.baseline.jsonc +++ b/tests/baselines/reference/getOccurrencesIsDefinitionOfVariable.baseline.jsonc @@ -1,3085 +1,1245 @@ +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// /*FIND ALL REFS*/var [|x|] = 0; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // /*FIND ALL REFS*/<|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var /*FIND ALL REFS*/[|x|] = 0; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true, - "isDefinition": false - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var /*FIND ALL REFS*/[|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = /*FIND ALL REFS*/[|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = /*FIND ALL REFS*/x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + /*FIND ALL REFS*/[|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + /*FIND ALL REFS*/x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// /*FIND ALL REFS*/[|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // /*FIND ALL REFS*/x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// /*FIND ALL REFS*/[|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // /*FIND ALL REFS*/x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = /*FIND ALL REFS*/[|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = /*FIND ALL REFS*/[|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = /*FIND ALL REFS*/x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + /*FIND ALL REFS*/[|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + /*FIND ALL REFS*/[|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + /*FIND ALL REFS*/x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // /*FIND ALL REFS*/[|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // /*FIND ALL REFS*/x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // /*FIND ALL REFS*/[|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // /*FIND ALL REFS*/x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++/*FIND ALL REFS*/[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++/*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++/*FIND ALL REFS*/x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = /*FIND ALL REFS*/[|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = /*FIND ALL REFS*/x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --/*FIND ALL REFS*/[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --/*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --/*FIND ALL REFS*/x; + // var postDecrement = x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = /*FIND ALL REFS*/[|x|]--; -// -// [|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = /*FIND ALL REFS*/x--; + // + // x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// /*FIND ALL REFS*/[|x|] += 1; -// [|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|] += 1; +// [|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // /*FIND ALL REFS*/x += 1; + // x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === -// var [|x|] = 0; +// <|var [|{| isWriteAccess: true |}x|] = 0;|> // var assignmentRightHandSide = [|x|]; // var assignmentRightHandSide2 = 1 + [|x|]; // -// [|x|] = 1; -// [|x|] = [|x|] + [|x|]; +// [|{| isWriteAccess: true |}x|] = 1; +// [|{| isWriteAccess: true |}x|] = [|x|] + [|x|]; // // [|x|] == 1; // [|x|] <= 1; // -// var preIncrement = ++[|x|]; -// var postIncrement = [|x|]++; -// var preDecrement = --[|x|]; -// var postDecrement = [|x|]--; -// -// [|x|] += 1; -// /*FIND ALL REFS*/[|x|] <<= 1; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "kind": "var", - "name": "var x: number", - "textSpan": { - "start": 4, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "contextSpan": { - "start": 0, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 98, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 163, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 189, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 212, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 218, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 226, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts", - "isWriteAccess": true - } +// var preIncrement = ++[|{| isWriteAccess: true |}x|]; +// var postIncrement = [|{| isWriteAccess: true |}x|]++; +// var preDecrement = --[|{| isWriteAccess: true |}x|]; +// var postDecrement = [|{| isWriteAccess: true |}x|]--; +// +// [|{| isWriteAccess: true |}x|] += 1; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|] <<= 1; + + // === Definitions === + // === /tests/cases/fourslash/getOccurrencesIsDefinitionOfVariable.ts === + // <|var [|x|] = 0;|> + // var assignmentRightHandSide = x; + // var assignmentRightHandSide2 = 1 + x; + // + // x = 1; + // x = x + x; + // + // x == 1; + // x <= 1; + // + // var preIncrement = ++x; + // var postIncrement = x++; + // var preDecrement = --x; + // var postDecrement = x--; + // + // x += 1; + // /*FIND ALL REFS*/x <<= 1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesIsWriteAccess.baseline.jsonc b/tests/baselines/reference/getOccurrencesIsWriteAccess.baseline.jsonc new file mode 100644 index 0000000000000..4fa5c428e5339 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesIsWriteAccess.baseline.jsonc @@ -0,0 +1,19 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesIsWriteAccess.ts === +// <|var /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}x|] = 0;|> +// var assignmentRightHandSide = [|{| kind: "reference" |}x|]; +// var assignmentRightHandSide2 = 1 + [|{| kind: "reference" |}x|]; +// +// [|{| kind: "writtenReference" |}x|] = 1; +// [|{| kind: "writtenReference" |}x|] = [|{| kind: "reference" |}x|] + [|{| kind: "reference" |}x|]; +// +// [|{| kind: "reference" |}x|] == 1; +// [|{| kind: "reference" |}x|] <= 1; +// +// var preIncrement = ++[|{| kind: "writtenReference" |}x|]; +// var postIncrement = [|{| kind: "writtenReference" |}x|]++; +// var preDecrement = --[|{| kind: "writtenReference" |}x|]; +// var postDecrement = [|{| kind: "writtenReference" |}x|]--; +// +// [|{| kind: "writtenReference" |}x|] += 1; +// [|{| kind: "writtenReference" |}x|] <<= 1; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue.baseline.jsonc new file mode 100644 index 0000000000000..aea27bcb5b9cc --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue.baseline.jsonc @@ -0,0 +1,466 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: /*HIGHLIGHTS*/[|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts === +// var arr = [1, 2, 3, 4]; +// label1: [|{| kind: "none" |}for|] (var n in arr) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label1; +// [|{| kind: "none" |}continue|] label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// [|{| kind: "none" |}break|] label1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue2.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue2.baseline.jsonc new file mode 100644 index 0000000000000..64f974d749a80 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue2.baseline.jsonc @@ -0,0 +1,332 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: /*HIGHLIGHTS*/[|{| kind: "none" |}for|] (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label2; +// [|{| kind: "none" |}continue|] label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: [|{| kind: "none" |}for|] (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label2; +// [|{| kind: "none" |}continue|] label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: [|{| kind: "none" |}for|] (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label2; +// [|{| kind: "none" |}continue|] label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: [|{| kind: "none" |}for|] (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label2; +// [|{| kind: "none" |}continue|] label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: [|{| kind: "none" |}for|] (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label2; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue3.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue3.baseline.jsonc new file mode 100644 index 0000000000000..f30581860e5f6 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue3.baseline.jsonc @@ -0,0 +1,466 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: /*HIGHLIGHTS*/[|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: [|{| kind: "none" |}while|] (true) { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label3; +// [|{| kind: "none" |}continue|] label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// [|{| kind: "none" |}break|] label3; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue4.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue4.baseline.jsonc new file mode 100644 index 0000000000000..49f655ff24da7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue4.baseline.jsonc @@ -0,0 +1,533 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: /*HIGHLIGHTS*/[|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// /*HIGHLIGHTS*/[|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } [|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: [|{| kind: "none" |}do|] { +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}continue|]; +// [|{| kind: "none" |}break|] label4; +// [|{| kind: "none" |}continue|] label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// [|{| kind: "none" |}break|] label4; +// default: +// [|{| kind: "none" |}continue|]; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } /*HIGHLIGHTS*/[|{| kind: "none" |}while|] (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue5.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue5.baseline.jsonc new file mode 100644 index 0000000000000..348c6e8ebd63e --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue5.baseline.jsonc @@ -0,0 +1,131 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: /*HIGHLIGHTS*/[|{| kind: "none" |}while|] (true) [|{| kind: "none" |}break|] label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: [|{| kind: "none" |}while|] (true) /*HIGHLIGHTS*/[|{| kind: "none" |}break|] label5; +// +// label7: while (true) continue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinue6.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinue6.baseline.jsonc new file mode 100644 index 0000000000000..959948f24554d --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinue6.baseline.jsonc @@ -0,0 +1,667 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// br/*HIGHLIGHTS*/eak label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// cont/*HIGHLIGHTS*/inue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// bre/*HIGHLIGHTS*/ak label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// c/*HIGHLIGHTS*/ontinue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// br/*HIGHLIGHTS*/eak label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// co/*HIGHLIGHTS*/ntinue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// br/*HIGHLIGHTS*/eak label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// con/*HIGHLIGHTS*/tinue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { b/*HIGHLIGHTS*/reak; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) co/*HIGHLIGHTS*/ntinue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesLoopBreakContinueNegatives.baseline.jsonc b/tests/baselines/reference/getOccurrencesLoopBreakContinueNegatives.baseline.jsonc new file mode 100644 index 0000000000000..2d7bf15101c9f --- /dev/null +++ b/tests/baselines/reference/getOccurrencesLoopBreakContinueNegatives.baseline.jsonc @@ -0,0 +1,667 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// br/*HIGHLIGHTS*/eak label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// cont/*HIGHLIGHTS*/inue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// bre/*HIGHLIGHTS*/ak label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// c/*HIGHLIGHTS*/ontinue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// br/*HIGHLIGHTS*/eak label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// co/*HIGHLIGHTS*/ntinue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// br/*HIGHLIGHTS*/eak label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// con/*HIGHLIGHTS*/tinue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { b/*HIGHLIGHTS*/reak; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) continue label5; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts === +// var arr = [1, 2, 3, 4]; +// label1: for (var n in arr) { +// break; +// continue; +// break label1; +// continue label1; +// +// label2: for (var i = 0; i < arr[n]; i++) { +// break label1; +// continue label1; +// +// break; +// continue; +// break label2; +// continue label2; +// +// function foo() { +// label3: while (true) { +// break; +// continue; +// break label3; +// continue label3; +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// +// label4: do { +// break; +// continue; +// break label4; +// continue label4; +// +// break label3; +// continue label3; +// +// switch (10) { +// case 1: +// case 2: +// break; +// break label4; +// default: +// continue; +// } +// +// // these cross function boundaries +// break label1; +// continue label1; +// break label2; +// continue label2; +// () => { break; } +// } while (true) +// } +// } +// } +// } +// +// label5: while (true) break label5; +// +// label7: while (true) co/*HIGHLIGHTS*/ntinue label5; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesModifiersNegatives1.baseline.jsonc b/tests/baselines/reference/getOccurrencesModifiersNegatives1.baseline.jsonc new file mode 100644 index 0000000000000..cd12ff351b950 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesModifiersNegatives1.baseline.jsonc @@ -0,0 +1,1973 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}export|] barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}export|] conFoo, +// declare conBar, +// [|{| kind: "none" |}export|] declare conFooBar, +// declare [|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static [|{| kind: "none" |}export|] declare sueFooBar, +// static declare [|{| kind: "none" |}export|] sueBarFoo, +// declare static [|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] conBar, +// export [|{| kind: "none" |}declare|] conFooBar, +// [|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export [|{| kind: "none" |}declare|] sueFooBar, +// static [|{| kind: "none" |}declare|] export sueBarFoo, +// [|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor([|{| kind: "none" |}export|] conFoo, +// declare conBar, +// /*HIGHLIGHTS*/[|{| kind: "none" |}export|] declare conFooBar, +// declare [|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static [|{| kind: "none" |}export|] declare sueFooBar, +// static declare [|{| kind: "none" |}export|] sueBarFoo, +// declare static [|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// [|{| kind: "none" |}declare|] conBar, +// export /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] conFooBar, +// [|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export [|{| kind: "none" |}declare|] sueFooBar, +// static [|{| kind: "none" |}declare|] export sueBarFoo, +// [|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// [|{| kind: "none" |}declare|] conBar, +// export [|{| kind: "none" |}declare|] conFooBar, +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export [|{| kind: "none" |}declare|] sueFooBar, +// static [|{| kind: "none" |}declare|] export sueBarFoo, +// [|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor([|{| kind: "none" |}export|] conFoo, +// declare conBar, +// [|{| kind: "none" |}export|] declare conFooBar, +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static [|{| kind: "none" |}export|] declare sueFooBar, +// static declare [|{| kind: "none" |}export|] sueBarFoo, +// declare static [|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// /*HIGHLIGHTS*/[|{| kind: "none" |}static|] sue, +// [|{| kind: "none" |}static|] export declare sueFooBar, +// [|{| kind: "none" |}static|] declare export sueBarFoo, +// declare [|{| kind: "none" |}static|] export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// [|{| kind: "none" |}static|] sue, +// /*HIGHLIGHTS*/[|{| kind: "none" |}static|] export declare sueFooBar, +// [|{| kind: "none" |}static|] declare export sueBarFoo, +// declare [|{| kind: "none" |}static|] export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor([|{| kind: "none" |}export|] conFoo, +// declare conBar, +// [|{| kind: "none" |}export|] declare conFooBar, +// declare [|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static /*HIGHLIGHTS*/[|{| kind: "none" |}export|] declare sueFooBar, +// static declare [|{| kind: "none" |}export|] sueBarFoo, +// declare static [|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// [|{| kind: "none" |}declare|] conBar, +// export [|{| kind: "none" |}declare|] conFooBar, +// [|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] sueFooBar, +// static [|{| kind: "none" |}declare|] export sueBarFoo, +// [|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// [|{| kind: "none" |}static|] sue, +// [|{| kind: "none" |}static|] export declare sueFooBar, +// /*HIGHLIGHTS*/[|{| kind: "none" |}static|] declare export sueBarFoo, +// declare [|{| kind: "none" |}static|] export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// [|{| kind: "none" |}declare|] conBar, +// export [|{| kind: "none" |}declare|] conFooBar, +// [|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export [|{| kind: "none" |}declare|] sueFooBar, +// static /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] export sueBarFoo, +// [|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor([|{| kind: "none" |}export|] conFoo, +// declare conBar, +// [|{| kind: "none" |}export|] declare conFooBar, +// declare [|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static [|{| kind: "none" |}export|] declare sueFooBar, +// static declare /*HIGHLIGHTS*/[|{| kind: "none" |}export|] sueBarFoo, +// declare static [|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// [|{| kind: "none" |}declare|] bar; +// export [|{| kind: "none" |}declare|] foobar; +// [|{| kind: "none" |}declare|] export barfoo; +// +// constructor(export conFoo, +// [|{| kind: "none" |}declare|] conBar, +// export [|{| kind: "none" |}declare|] conFooBar, +// [|{| kind: "none" |}declare|] export conBarFoo, +// static sue, +// static export [|{| kind: "none" |}declare|] sueFooBar, +// static [|{| kind: "none" |}declare|] export sueBarFoo, +// /*HIGHLIGHTS*/[|{| kind: "none" |}declare|] static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// [|{| kind: "none" |}static|] sue, +// [|{| kind: "none" |}static|] export declare sueFooBar, +// [|{| kind: "none" |}static|] declare export sueBarFoo, +// declare /*HIGHLIGHTS*/[|{| kind: "none" |}static|] export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// [|{| kind: "none" |}export|] foo; +// declare bar; +// [|{| kind: "none" |}export|] declare foobar; +// declare [|{| kind: "none" |}export|] barfoo; +// +// constructor([|{| kind: "none" |}export|] conFoo, +// declare conBar, +// [|{| kind: "none" |}export|] declare conFooBar, +// declare [|{| kind: "none" |}export|] conBarFoo, +// static sue, +// static [|{| kind: "none" |}export|] declare sueFooBar, +// static declare [|{| kind: "none" |}export|] sueBarFoo, +// declare static /*HIGHLIGHTS*/[|{| kind: "none" |}export|] barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// /*HIGHLIGHTS*/static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// /*HIGHLIGHTS*/public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// /*HIGHLIGHTS*/private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// /*HIGHLIGHTS*/protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// /*HIGHLIGHTS*/static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static /*HIGHLIGHTS*/public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public /*HIGHLIGHTS*/private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private /*HIGHLIGHTS*/protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// /*HIGHLIGHTS*/public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public /*HIGHLIGHTS*/static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static /*HIGHLIGHTS*/protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected /*HIGHLIGHTS*/private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// /*HIGHLIGHTS*/protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected /*HIGHLIGHTS*/static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static /*HIGHLIGHTS*/public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// /*HIGHLIGHTS*/static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// /*HIGHLIGHTS*/public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// /*HIGHLIGHTS*/private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// /*HIGHLIGHTS*/protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// /*HIGHLIGHTS*/static public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static /*HIGHLIGHTS*/public private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public /*HIGHLIGHTS*/private protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private /*HIGHLIGHTS*/protected e; +// public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// /*HIGHLIGHTS*/public static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public /*HIGHLIGHTS*/static protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static /*HIGHLIGHTS*/protected private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected /*HIGHLIGHTS*/private f; +// protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// /*HIGHLIGHTS*/protected static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected /*HIGHLIGHTS*/static public g; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts === +// class C { +// export foo; +// declare bar; +// export declare foobar; +// declare export barfoo; +// +// constructor(export conFoo, +// declare conBar, +// export declare conFooBar, +// declare export conBarFoo, +// static sue, +// static export declare sueFooBar, +// static declare export sueBarFoo, +// declare static export barSueFoo) { +// } +// } +// +// module m { +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static public g; +// } +// static a; +// public b; +// private c; +// protected d; +// static public private protected e; +// public static protected private f; +// protected static /*HIGHLIGHTS*/public g; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesNonStringImportAssertion.baseline.jsonc b/tests/baselines/reference/getOccurrencesNonStringImportAssertion.baseline.jsonc new file mode 100644 index 0000000000000..a2fa8f8051ad8 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesNonStringImportAssertion.baseline.jsonc @@ -0,0 +1,4 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts === +// import * as react from "react" assert { cache: /*HIGHLIGHTS*/0 }; +// react.Children; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesOfAnonymousFunction.baseline.jsonc b/tests/baselines/reference/getOccurrencesOfAnonymousFunction.baseline.jsonc new file mode 100644 index 0000000000000..40fde0a363c5d --- /dev/null +++ b/tests/baselines/reference/getOccurrencesOfAnonymousFunction.baseline.jsonc @@ -0,0 +1,15 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts === +// (<|function /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}foo|](): number { +// var x = [|{| kind: "reference" |}foo|]; +// return 0; +// }|>) + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts === +// (<|function [|{| kind: "writtenReference" |}foo|](): number { +// var x = /*HIGHLIGHTS*/[|{| kind: "reference" |}foo|]; +// return 0; +// }|>) \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesOfAnonymousFunction2.baseline.jsonc b/tests/baselines/reference/getOccurrencesOfAnonymousFunction2.baseline.jsonc new file mode 100644 index 0000000000000..a739c2f3fd488 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesOfAnonymousFunction2.baseline.jsonc @@ -0,0 +1,25 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts === +// //global foo definition +// function foo() {} +// +// (<|function [|{| kind: "writtenReference" |}f/*HIGHLIGHTS*/oo|](): number { +// return [|{| kind: "reference" |}foo|](); // local foo reference +// }|>) +// //global foo references +// foo(); +// var f = foo; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts === +// //global foo definition +// <|function [|{| kind: "writtenReference" |}foo|]() {}|> +// +// (function foo(): number { +// return foo(); // local foo reference +// }) +// //global foo references +// [|{| kind: "reference" |}fo/*HIGHLIGHTS*/o|](); +// var f = [|{| kind: "reference" |}foo|]; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesOfDecorators.baseline.jsonc b/tests/baselines/reference/getOccurrencesOfDecorators.baseline.jsonc new file mode 100644 index 0000000000000..47e2578412ca1 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesOfDecorators.baseline.jsonc @@ -0,0 +1,10 @@ +// === documentHighlights === +// === /tests/cases/fourslash/b.ts === +// @/*HIGHLIGHTS*/[|{| kind: "reference" |}decorator|] +// class C { +// @[|{| kind: "reference" |}decorator|] +// method() {} +// } +// <|function [|{| kind: "writtenReference" |}decorator|](target) { +// return target; +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesOfUndefinedSymbol.baseline.jsonc b/tests/baselines/reference/getOccurrencesOfUndefinedSymbol.baseline.jsonc new file mode 100644 index 0000000000000..2aa7fedc1ecc0 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesOfUndefinedSymbol.baseline.jsonc @@ -0,0 +1,15 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesOfUndefinedSymbol.ts === +// var obj1: { +// (bar: any): any; +// new (bar: any): any; +// [bar: any]: any; +// bar: any; +// foob(bar: any): any; +// }; +// +// class cls3 { +// property zeFunc() { +// super.ceFun/*HIGHLIGHTS*/c(); +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesPrivate1.baseline.jsonc b/tests/baselines/reference/getOccurrencesPrivate1.baseline.jsonc new file mode 100644 index 0000000000000..fe31b4fc0d72a --- /dev/null +++ b/tests/baselines/reference/getOccurrencesPrivate1.baseline.jsonc @@ -0,0 +1,345 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] priv1; +// [|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// [|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, [|{| kind: "none" |}private|] b, protected c, public d, [|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// [|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// [|{| kind: "none" |}private|] priv1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// [|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, [|{| kind: "none" |}private|] b, protected c, public d, [|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// [|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// [|{| kind: "none" |}private|] priv1; +// [|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, [|{| kind: "none" |}private|] b, protected c, public d, [|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// [|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// [|{| kind: "none" |}private|] priv1; +// [|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// [|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, /*HIGHLIGHTS*/[|{| kind: "none" |}private|] b, protected c, public d, [|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// [|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// [|{| kind: "none" |}private|] priv1; +// [|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// [|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, [|{| kind: "none" |}private|] b, protected c, public d, /*HIGHLIGHTS*/[|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// [|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// [|{| kind: "none" |}private|] priv1; +// [|{| kind: "none" |}private|] priv2; +// protected prot1; +// protected prot2; +// +// public public; +// [|{| kind: "none" |}private|] private; +// protected protected; +// +// public constructor(public a, [|{| kind: "none" |}private|] b, protected c, public d, [|{| kind: "none" |}private|] e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesPrivate2.baseline.jsonc b/tests/baselines/reference/getOccurrencesPrivate2.baseline.jsonc new file mode 100644 index 0000000000000..91d2d8b91b0ba --- /dev/null +++ b/tests/baselines/reference/getOccurrencesPrivate2.baseline.jsonc @@ -0,0 +1,113 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}private|] priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, [|{| kind: "none" |}private|] private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPrivate2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// [|{| kind: "none" |}private|] priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, /*HIGHLIGHTS*/[|{| kind: "none" |}private|] private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesPropertyInAliasedInterface.baseline.jsonc b/tests/baselines/reference/getOccurrencesPropertyInAliasedInterface.baseline.jsonc new file mode 100644 index 0000000000000..fe37b3aefd11c --- /dev/null +++ b/tests/baselines/reference/getOccurrencesPropertyInAliasedInterface.baseline.jsonc @@ -0,0 +1,85 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts === +// module m { +// export interface Foo { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}abc|] +// } +// } +// +// import Bar = m.Foo; +// +// export interface I extends Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// class C implements Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// (new C()).[|{| kind: "reference" |}abc|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts === +// module m { +// export interface Foo { +// [|{| kind: "reference" |}abc|] +// } +// } +// +// import Bar = m.Foo; +// +// export interface I extends Bar { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}abc|] +// } +// +// class C implements Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// (new C()).[|{| kind: "reference" |}abc|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts === +// module m { +// export interface Foo { +// [|{| kind: "reference" |}abc|] +// } +// } +// +// import Bar = m.Foo; +// +// export interface I extends Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// class C implements Bar { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}abc|] +// } +// +// (new C()).[|{| kind: "reference" |}abc|]; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts === +// module m { +// export interface Foo { +// [|{| kind: "reference" |}abc|] +// } +// } +// +// import Bar = m.Foo; +// +// export interface I extends Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// class C implements Bar { +// [|{| kind: "reference" |}abc|] +// } +// +// (new C())./*HIGHLIGHTS*/[|{| kind: "reference" |}abc|]; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesProtected1.baseline.jsonc b/tests/baselines/reference/getOccurrencesProtected1.baseline.jsonc new file mode 100644 index 0000000000000..a0c0e2f929845 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesProtected1.baseline.jsonc @@ -0,0 +1,345 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] prot1; +// [|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// [|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, [|{| kind: "none" |}protected|] c, public d, private e, [|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// [|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// [|{| kind: "none" |}protected|] prot1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// [|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, [|{| kind: "none" |}protected|] c, public d, private e, [|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// [|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// [|{| kind: "none" |}protected|] prot1; +// [|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, [|{| kind: "none" |}protected|] c, public d, private e, [|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// [|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// [|{| kind: "none" |}protected|] prot1; +// [|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// [|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] c, public d, private e, [|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// [|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// [|{| kind: "none" |}protected|] prot1; +// [|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// [|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, [|{| kind: "none" |}protected|] c, public d, private e, /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// [|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// [|{| kind: "none" |}protected|] prot1; +// [|{| kind: "none" |}protected|] prot2; +// +// public public; +// private private; +// [|{| kind: "none" |}protected|] protected; +// +// public constructor(public a, private b, [|{| kind: "none" |}protected|] c, public d, private e, [|{| kind: "none" |}protected|] f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesProtected2.baseline.jsonc b/tests/baselines/reference/getOccurrencesProtected2.baseline.jsonc new file mode 100644 index 0000000000000..62b719d41a618 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesProtected2.baseline.jsonc @@ -0,0 +1,171 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] prot1; +// +// [|{| kind: "none" |}protected|] constructor(public public, [|{| kind: "none" |}protected|] protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// [|{| kind: "none" |}protected|] prot1; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] constructor(public public, [|{| kind: "none" |}protected|] protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesProtected2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// [|{| kind: "none" |}protected|] prot1; +// +// [|{| kind: "none" |}protected|] constructor(public public, /*HIGHLIGHTS*/[|{| kind: "none" |}protected|] protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesPublic1.baseline.jsonc b/tests/baselines/reference/getOccurrencesPublic1.baseline.jsonc new file mode 100644 index 0000000000000..726c3d3353501 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesPublic1.baseline.jsonc @@ -0,0 +1,519 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, /*HIGHLIGHTS*/[|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] set x(value) { } +// +// [|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic1.ts === +// module m { +// export class C1 { +// [|{| kind: "none" |}public|] pub1; +// [|{| kind: "none" |}public|] pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// [|{| kind: "none" |}public|] public; +// private private; +// protected protected; +// +// [|{| kind: "none" |}public|] constructor([|{| kind: "none" |}public|] a, private b, protected c, [|{| kind: "none" |}public|] d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// [|{| kind: "none" |}public|] get x() { return 10; } +// [|{| kind: "none" |}public|] set x(value) { } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesPublic2.baseline.jsonc b/tests/baselines/reference/getOccurrencesPublic2.baseline.jsonc new file mode 100644 index 0000000000000..a16b7ed597bf6 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesPublic2.baseline.jsonc @@ -0,0 +1,113 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// /*HIGHLIGHTS*/[|{| kind: "none" |}public|] pub1; +// private priv1; +// protected prot1; +// +// protected constructor([|{| kind: "none" |}public|] public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesPublic2.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public static statPub; +// private static statPriv; +// protected static statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// [|{| kind: "none" |}public|] pub1; +// private priv1; +// protected prot1; +// +// protected constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}public|] public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReadonly1.baseline.jsonc b/tests/baselines/reference/getOccurrencesReadonly1.baseline.jsonc new file mode 100644 index 0000000000000..c487b29d65b36 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReadonly1.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReadonly1.ts === +// interface I { +// /*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] prop: string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReadonly2.baseline.jsonc b/tests/baselines/reference/getOccurrencesReadonly2.baseline.jsonc new file mode 100644 index 0000000000000..b36f16cc694e7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReadonly2.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReadonly2.ts === +// type T = { +// /*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] prop: string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReadonly3.baseline.jsonc b/tests/baselines/reference/getOccurrencesReadonly3.baseline.jsonc new file mode 100644 index 0000000000000..8f08ba3eeb069 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReadonly3.baseline.jsonc @@ -0,0 +1,36 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReadonly3.ts === +// class C { +// /*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] prop: readonly string[] = []; +// constructor([|{| kind: "none" |}readonly|] prop2: string) { +// class D { +// readonly prop: string = ""; +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReadonly3.ts === +// class C { +// [|{| kind: "none" |}readonly|] prop: readonly string[] = []; +// constructor(/*HIGHLIGHTS*/[|{| kind: "none" |}readonly|] prop2: string) { +// class D { +// readonly prop: string = ""; +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReadonly3.ts === +// class C { +// readonly prop: /*HIGHLIGHTS*/[|{| kind: "reference" |}readonly|] string[] = []; +// constructor(readonly prop2: string) { +// class D { +// readonly prop: string = ""; +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReturn.baseline.jsonc b/tests/baselines/reference/getOccurrencesReturn.baseline.jsonc new file mode 100644 index 0000000000000..c1d6f9fe6dbeb --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReturn.baseline.jsonc @@ -0,0 +1,66 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn.ts === +// function f(a: number) { +// if (a > 0) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn.ts === +// function f(a: number) { +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn.ts === +// function f(a: number) { +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] true; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReturn2.baseline.jsonc b/tests/baselines/reference/getOccurrencesReturn2.baseline.jsonc new file mode 100644 index 0000000000000..79edd1abe2791 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReturn2.baseline.jsonc @@ -0,0 +1,89 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn2.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// while (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn2.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// while (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn2.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// +// while (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn2.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// while (false) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReturn3.baseline.jsonc b/tests/baselines/reference/getOccurrencesReturn3.baseline.jsonc new file mode 100644 index 0000000000000..e8e5529d2e180 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReturn3.baseline.jsonc @@ -0,0 +1,20 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn3.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { /*HIGHLIGHTS*/[|{| kind: "none" |}return|] 4 }) +// +// return; +// return true; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReturn4.baseline.jsonc b/tests/baselines/reference/getOccurrencesReturn4.baseline.jsonc new file mode 100644 index 0000000000000..02d7a831d3371 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReturn4.baseline.jsonc @@ -0,0 +1,158 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/ true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { [|{| kind: "none" |}return|]/*HIGHLIGHTS*/ 4 }) +// +// return; +// return true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/; +// [|{| kind: "none" |}return|] true; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturn4.ts === +// function f(a: number) { +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]/*HIGHLIGHTS*/ true; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesReturnBroken.baseline.jsonc b/tests/baselines/reference/getOccurrencesReturnBroken.baseline.jsonc new file mode 100644 index 0000000000000..a28bd7ae3b690 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesReturnBroken.baseline.jsonc @@ -0,0 +1,237 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// ret/*HIGHLIGHTS*/urn; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// retu/*HIGHLIGHTS*/rn; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// return; +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// return (function () { +// () => return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// return; +// return true; +// } +// +// class A { +// <|[|{| kind: "reference" |}ret/*HIGHLIGHTS*/urn|];|> +// return 8675309; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesReturnBroken.ts === +// return; +// return; +// function f(a: number) { +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// () => return; +// return; +// return; +// +// if (false) { +// return true; +// } +// })() || true; +// } +// +// var unusued = [1, 2, 3, 4].map(x => { return 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// } +// +// class A { +// return; +// [|{| kind: "none" |}r/*HIGHLIGHTS*/eturn|] 8675309; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSetAndGet.baseline.jsonc b/tests/baselines/reference/getOccurrencesSetAndGet.baseline.jsonc new file mode 100644 index 0000000000000..8524e8b160a42 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSetAndGet.baseline.jsonc @@ -0,0 +1,51 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet.ts === +// class Foo { +// /*HIGHLIGHTS*/[|{| kind: "none" |}set|] bar(b: any) { +// } +// +// public [|{| kind: "none" |}get|] bar(): any { +// return undefined; +// } +// +// public set set(s: any) { +// } +// +// public get set(): any { +// return undefined; +// } +// +// public set get(g: any) { +// } +// +// public get get(): any { +// return undefined; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet.ts === +// class Foo { +// [|{| kind: "none" |}set|] bar(b: any) { +// } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}get|] bar(): any { +// return undefined; +// } +// +// public set set(s: any) { +// } +// +// public get set(): any { +// return undefined; +// } +// +// public set get(g: any) { +// } +// +// public get get(): any { +// return undefined; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSetAndGet2.baseline.jsonc b/tests/baselines/reference/getOccurrencesSetAndGet2.baseline.jsonc new file mode 100644 index 0000000000000..76a11ad0f4ecd --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSetAndGet2.baseline.jsonc @@ -0,0 +1,51 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet2.ts === +// class Foo { +// set bar(b: any) { +// } +// +// public get bar(): any { +// return undefined; +// } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}set|] set(s: any) { +// } +// +// public [|{| kind: "none" |}get|] set(): any { +// return undefined; +// } +// +// public set get(g: any) { +// } +// +// public get get(): any { +// return undefined; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet2.ts === +// class Foo { +// set bar(b: any) { +// } +// +// public get bar(): any { +// return undefined; +// } +// +// public [|{| kind: "none" |}set|] set(s: any) { +// } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}get|] set(): any { +// return undefined; +// } +// +// public set get(g: any) { +// } +// +// public get get(): any { +// return undefined; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSetAndGet3.baseline.jsonc b/tests/baselines/reference/getOccurrencesSetAndGet3.baseline.jsonc new file mode 100644 index 0000000000000..19b58bde11941 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSetAndGet3.baseline.jsonc @@ -0,0 +1,51 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet3.ts === +// class Foo { +// set bar(b: any) { +// } +// +// public get bar(): any { +// return undefined; +// } +// +// public set set(s: any) { +// } +// +// public get set(): any { +// return undefined; +// } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}set|] get(g: any) { +// } +// +// public [|{| kind: "none" |}get|] get(): any { +// return undefined; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSetAndGet3.ts === +// class Foo { +// set bar(b: any) { +// } +// +// public get bar(): any { +// return undefined; +// } +// +// public set set(s: any) { +// } +// +// public get set(): any { +// return undefined; +// } +// +// public [|{| kind: "none" |}set|] get(g: any) { +// } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}get|] get(): any { +// return undefined; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesStatic1.baseline.jsonc b/tests/baselines/reference/getOccurrencesStatic1.baseline.jsonc new file mode 100644 index 0000000000000..3c2ebd50fbe74 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesStatic1.baseline.jsonc @@ -0,0 +1,171 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStatic1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public /*HIGHLIGHTS*/[|{| kind: "none" |}static|] statPub; +// private [|{| kind: "none" |}static|] statPriv; +// protected [|{| kind: "none" |}static|] statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStatic1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public [|{| kind: "none" |}static|] statPub; +// private /*HIGHLIGHTS*/[|{| kind: "none" |}static|] statPriv; +// protected [|{| kind: "none" |}static|] statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStatic1.ts === +// module m { +// export class C1 { +// public pub1; +// public pub2; +// private priv1; +// private priv2; +// protected prot1; +// protected prot2; +// +// public public; +// private private; +// protected protected; +// +// public constructor(public a, private b, protected c, public d, private e, protected f) { +// this.public = 10; +// this.private = 10; +// this.protected = 10; +// } +// +// public get x() { return 10; } +// public set x(value) { } +// +// public [|{| kind: "none" |}static|] statPub; +// private [|{| kind: "none" |}static|] statPriv; +// protected /*HIGHLIGHTS*/[|{| kind: "none" |}static|] statProt; +// } +// +// export interface I1 { +// } +// +// export declare module ma.m1.m2.m3 { +// interface I2 { +// } +// } +// +// export module mb.m1.m2.m3 { +// declare var foo; +// +// export class C2 { +// public pub1; +// private priv1; +// protected prot1; +// +// protected constructor(public public, protected protected, private private) { +// public = private = protected; +// } +// } +// } +// +// declare var ambientThing: number; +// export var exportedThing = 10; +// declare function foo(): string; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesStringLiteralTypes.baseline.jsonc b/tests/baselines/reference/getOccurrencesStringLiteralTypes.baseline.jsonc new file mode 100644 index 0000000000000..dbd26598dcc1d --- /dev/null +++ b/tests/baselines/reference/getOccurrencesStringLiteralTypes.baseline.jsonc @@ -0,0 +1,11 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts === +// function foo(a: "/*HIGHLIGHTS*/[|{| kind: "reference", isInString: true |}option 1|]") { } +// foo("[|{| kind: "reference", isInString: true |}option 1|]"); + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts === +// function foo(a: "[|{| kind: "reference", isInString: true |}option 1|]") { } +// foo("/*HIGHLIGHTS*/[|{| kind: "reference", isInString: true |}option 1|]"); \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesStringLiterals.baseline.jsonc b/tests/baselines/reference/getOccurrencesStringLiterals.baseline.jsonc new file mode 100644 index 0000000000000..1673558639478 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesStringLiterals.baseline.jsonc @@ -0,0 +1,11 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStringLiterals.ts === +// var x = "/*HIGHLIGHTS*/[|{| kind: "reference", isInString: true |}string|]"; +// function f(a = "initial value") { } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesStringLiterals.ts === +// var x = "string"; +// function f(a = "/*HIGHLIGHTS*/[|{| kind: "reference", isInString: true |}initial value|]") { } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSuper.baseline.jsonc b/tests/baselines/reference/getOccurrencesSuper.baseline.jsonc new file mode 100644 index 0000000000000..b8101c8635194 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSuper.baseline.jsonc @@ -0,0 +1,375 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// [|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = [|{| kind: "reference" |}super|].superMethod; +// private prop2 = [|{| kind: "reference" |}super|].superMethod; +// +// constructor() { +// [|{| kind: "reference" |}super|](); +// } +// +// public method1() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// private method2() { +// return [|{| kind: "reference" |}super|].superMethod(); +// } +// +// public method3() { +// var x = () => [|{| kind: "reference" |}super|].superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = super.superStaticMethod; +// +// public static staticMethod1() { +// return super.superStaticMethod(); +// } +// +// private static staticMethod2() { +// return super.superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSuper2.baseline.jsonc b/tests/baselines/reference/getOccurrencesSuper2.baseline.jsonc new file mode 100644 index 0000000000000..95b1176b1dafa --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSuper2.baseline.jsonc @@ -0,0 +1,159 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper2.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = super.superMethod; +// private prop2 = super.superMethod; +// +// constructor() { +// super(); +// } +// +// public method1() { +// return super.superMethod(); +// } +// +// private method2() { +// return super.superMethod(); +// } +// +// public method3() { +// var x = () => super.superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// super.superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superStaticMethod; +// +// public static staticMethod1() { +// return [|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// private static staticMethod2() { +// return [|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper2.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = super.superMethod; +// private prop2 = super.superMethod; +// +// constructor() { +// super(); +// } +// +// public method1() { +// return super.superMethod(); +// } +// +// private method2() { +// return super.superMethod(); +// } +// +// public method3() { +// var x = () => super.superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// super.superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = [|{| kind: "reference" |}super|].superStaticMethod; +// +// public static staticMethod1() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// private static staticMethod2() { +// return [|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper2.ts === +// class SuperType { +// superMethod() { +// } +// +// static superStaticMethod() { +// return 10; +// } +// } +// +// class SubType extends SuperType { +// public prop1 = super.superMethod; +// private prop2 = super.superMethod; +// +// constructor() { +// super(); +// } +// +// public method1() { +// return super.superMethod(); +// } +// +// private method2() { +// return super.superMethod(); +// } +// +// public method3() { +// var x = () => super.superMethod(); +// +// // Bad but still gets highlighted +// function f() { +// super.superMethod(); +// } +// } +// +// // Bad but still gets highlighted. +// public static statProp1 = [|{| kind: "reference" |}super|].superStaticMethod; +// +// public static staticMethod1() { +// return [|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// private static staticMethod2() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].superStaticMethod(); +// } +// +// // Are not actually 'super' keywords. +// super = 10; +// static super = 20; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSuper3.baseline.jsonc b/tests/baselines/reference/getOccurrencesSuper3.baseline.jsonc new file mode 100644 index 0000000000000..5dfd85bae6523 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSuper3.baseline.jsonc @@ -0,0 +1,65 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper3.ts === +// let x = { +// a() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].b(); +// }, +// b() { +// return [|{| kind: "reference" |}super|].a(); +// }, +// c: function () { +// return super.a(); +// } +// d: () => super.b(); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper3.ts === +// let x = { +// a() { +// return [|{| kind: "reference" |}super|].b(); +// }, +// b() { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}super|].a(); +// }, +// c: function () { +// return super.a(); +// } +// d: () => super.b(); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper3.ts === +// let x = { +// a() { +// return super.b(); +// }, +// b() { +// return super.a(); +// }, +// c: function () { +// return /*HIGHLIGHTS*/super.a(); +// } +// d: () => super.b(); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuper3.ts === +// let x = { +// a() { +// return super.b(); +// }, +// b() { +// return super.a(); +// }, +// c: function () { +// return super.a(); +// } +// d: () => /*HIGHLIGHTS*/super.b(); +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSuperNegatives.baseline.jsonc b/tests/baselines/reference/getOccurrencesSuperNegatives.baseline.jsonc new file mode 100644 index 0000000000000..87d30ec39b6f1 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSuperNegatives.baseline.jsonc @@ -0,0 +1,117 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuperNegatives.ts === +// function f(x = /*HIGHLIGHTS*/super) { +// super; +// } +// +// module M { +// super; +// function f(x = super) { +// super; +// } +// +// class A { +// } +// +// class B extends A { +// constructor() { +// super(); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuperNegatives.ts === +// function f(x = super) { +// /*HIGHLIGHTS*/super; +// } +// +// module M { +// super; +// function f(x = super) { +// super; +// } +// +// class A { +// } +// +// class B extends A { +// constructor() { +// super(); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuperNegatives.ts === +// function f(x = super) { +// super; +// } +// +// module M { +// /*HIGHLIGHTS*/super; +// function f(x = super) { +// super; +// } +// +// class A { +// } +// +// class B extends A { +// constructor() { +// super(); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuperNegatives.ts === +// function f(x = super) { +// super; +// } +// +// module M { +// super; +// function f(x = /*HIGHLIGHTS*/super) { +// super; +// } +// +// class A { +// } +// +// class B extends A { +// constructor() { +// super(); +// } +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSuperNegatives.ts === +// function f(x = super) { +// super; +// } +// +// module M { +// super; +// function f(x = super) { +// /*HIGHLIGHTS*/super; +// } +// +// class A { +// } +// +// class B extends A { +// constructor() { +// super(); +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefault.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefault.baseline.jsonc new file mode 100644 index 0000000000000..97a353eaac260 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefault.baseline.jsonc @@ -0,0 +1,195 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// /*HIGHLIGHTS*/[|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 16: +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefault2.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefault2.baseline.jsonc new file mode 100644 index 0000000000000..84fdbff7103dd --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefault2.baseline.jsonc @@ -0,0 +1,129 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: /*HIGHLIGHTS*/[|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefault3.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefault3.baseline.jsonc new file mode 100644 index 0000000000000..1f47954df0667 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefault3.baseline.jsonc @@ -0,0 +1,157 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: /*HIGHLIGHTS*/[|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts === +// foo: [|{| kind: "none" |}switch|] (1) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 3: +// switch (2) { +// case 1: +// [|{| kind: "none" |}break|] foo; +// continue; // invalid +// default: +// break; +// } +// [|{| kind: "none" |}default|]: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefault4.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefault4.baseline.jsonc new file mode 100644 index 0000000000000..c64740e5e42e2 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefault4.baseline.jsonc @@ -0,0 +1,109 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: /*HIGHLIGHTS*/[|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: switch (10) { +// case 1: +// case 2: +// case 3: +// break; +// break foo; +// co/*HIGHLIGHTS*/ntinue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts === +// foo: switch (10) { +// case 1: +// case 2: +// case 3: +// break; +// break foo; +// continue; +// contin/*HIGHLIGHTS*/ue foo; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefault5.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefault5.baseline.jsonc new file mode 100644 index 0000000000000..27a8bd79c70ca --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefault5.baseline.jsonc @@ -0,0 +1,305 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|]/*HIGHLIGHTS*/ (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|]/*HIGHLIGHTS*/ (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]/*HIGHLIGHTS*/; +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: [|{| kind: "none" |}switch|] (20) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}default|]/*HIGHLIGHTS*/: +// [|{| kind: "none" |}break|] foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|]/*HIGHLIGHTS*/ 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]/*HIGHLIGHTS*/: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}default|]: +// [|{| kind: "none" |}break|]/*HIGHLIGHTS*/; +// [|{| kind: "none" |}case|] 16: +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts === +// switch (10) { +// case 1: +// case 2: +// case 4: +// case 8: +// foo: switch (20) { +// case 1: +// case 2: +// break; +// default: +// break foo; +// } +// case 0xBEEF: +// default: +// break; +// case 16/*HIGHLIGHTS*/: +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesSwitchCaseDefaultBroken.baseline.jsonc b/tests/baselines/reference/getOccurrencesSwitchCaseDefaultBroken.baseline.jsonc new file mode 100644 index 0000000000000..0f4f33d517423 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesSwitchCaseDefaultBroken.baseline.jsonc @@ -0,0 +1,393 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// [|{| kind: "none" |}swi/*HIGHLIGHTS*/tch|](10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// defult: +// [|{| kind: "none" |}break|]; +// cas 16: +// [|{| kind: "none" |}case|] 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// [|{| kind: "none" |}switch|](10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}c/*HIGHLIGHTS*/ase|] 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// defult: +// [|{| kind: "none" |}break|]; +// cas 16: +// [|{| kind: "none" |}case|] 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// <|[|{| kind: "reference" |}de/*HIGHLIGHTS*/fult|]: +// break;|> +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// /*HIGHLIGHTS*/cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// [|{| kind: "none" |}switch|](10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// defult: +// [|{| kind: "none" |}break|]; +// cas 16: +// [|{| kind: "none" |}c/*HIGHLIGHTS*/ase|] 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// br/*HIGHLIGHTS*/eak; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// /*HIGHLIGHTS*/break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// [|{| kind: "none" |}sw/*HIGHLIGHTS*/itch|] (10) { +// [|{| kind: "none" |}default|] +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2 +// +// cose 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}de/*HIGHLIGHTS*/fault|] +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2 +// +// cose 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}case|] 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// c/*HIGHLIGHTS*/ose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}default|] +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2 +// +// cose 4: +// [|{| kind: "none" |}case|] 8: +// [|{| kind: "none" |}case|] 0xBEEF: +// [|{| kind: "none" |}bre/*HIGHLIGHTS*/ak|]; +// [|{| kind: "none" |}case|] 16: +// () => break; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts === +// switch(10) { +// case 1: +// case 2: +// case 4: +// case 8: +// case 0xBEEF: +// defult: +// break; +// cas 16: +// case 12: +// function f() { +// break; +// break; +// } +// } +// +// switch (10) { +// default +// case 1: +// case 2 +// +// cose 4: +// case 8: +// case 0xBEEF: +// break; +// case 16: +// () => bre/*HIGHLIGHTS*/ak; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis.baseline.jsonc new file mode 100644 index 0000000000000..f1ba528c68ace --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis.baseline.jsonc @@ -0,0 +1,285 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis.ts === +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis.ts === +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis2.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis2.baseline.jsonc new file mode 100644 index 0000000000000..f4dfca6525d5d --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis2.baseline.jsonc @@ -0,0 +1,861 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis2.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis3.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis3.baseline.jsonc new file mode 100644 index 0000000000000..8a0c9c68b6a68 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis3.baseline.jsonc @@ -0,0 +1,285 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis3.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// (function (_) { +// this; +// })([|{| kind: "reference" |}this|]); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis3.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// [|{| kind: "reference" |}this|]; +// (function (_) { +// this; +// })(/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis4.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis4.baseline.jsonc new file mode 100644 index 0000000000000..e8258c3e486c2 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis4.baseline.jsonc @@ -0,0 +1,1869 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis4.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = [|{| kind: "reference" |}this|].method1; +// +// public method1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis5.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis5.baseline.jsonc new file mode 100644 index 0000000000000..7354672e6b509 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis5.baseline.jsonc @@ -0,0 +1,1869 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if (/*HIGHLIGHTS*/[|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis5.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = [|{| kind: "reference" |}this|].staticMethod1; +// +// public static staticMethod1() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThis6.baseline.jsonc b/tests/baselines/reference/getOccurrencesThis6.baseline.jsonc new file mode 100644 index 0000000000000..e3a5774badf51 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThis6.baseline.jsonc @@ -0,0 +1,1437 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// [|{| kind: "reference" |}this|]/*HIGHLIGHTS*/; +// [|{| kind: "reference" |}this|]; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: [|{| kind: "reference" |}this|], +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// [|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// this; +// this; +// +// function f() { +// [|{| kind: "reference" |}this|]/*HIGHLIGHTS*/; +// [|{| kind: "reference" |}this|]; +// () => [|{| kind: "reference" |}this|]; +// () => { +// if ([|{| kind: "reference" |}this|]) { +// [|{| kind: "reference" |}this|]; +// } +// else { +// [|{| kind: "reference" |}this|].this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: this, +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = th/*HIGHLIGHTS*/is; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: this, +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// [|{| kind: "reference" |}this|]/*HIGHLIGHTS*/; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: this, +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: /*HIGHLIGHTS*/[|{| kind: "reference" |}this|], +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// [|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: this, +// +// f() { +// [|{| kind: "reference" |}this|]/*HIGHLIGHTS*/; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// }, +// +// g() { +// [|{| kind: "reference" |}this|]; +// }, +// +// get h() { +// [|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// return; +// }, +// +// set h(foo: any) { +// [|{| kind: "reference" |}this|]; +// }, +// +// l: () => { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: this, +// +// f() { +// [|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// }, +// +// g() { +// [|{| kind: "reference" |}this|]; +// }, +// +// get h() { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// return; +// }, +// +// set h(foo: any) { +// [|{| kind: "reference" |}this|]; +// }, +// +// l: () => { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// }; +// + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThis6.ts === +// [|{| kind: "reference" |}this|]; +// [|{| kind: "reference" |}this|]; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// var x = this; +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// a: [|{| kind: "reference" |}this|], +// +// f() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// }, +// +// g() { +// this; +// }, +// +// get h() { +// this; +// function foo() { +// this; +// } +// const bar = () => { +// this; +// } +// return; +// }, +// +// set h(foo: any) { +// this; +// }, +// +// l: () => { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}this|]; +// function foo() { +// this; +// } +// const bar = () => { +// [|{| kind: "reference" |}this|]; +// } +// }, +// }; +// \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThisNegatives2.baseline.jsonc b/tests/baselines/reference/getOccurrencesThisNegatives2.baseline.jsonc new file mode 100644 index 0000000000000..1604af6d7fdac --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThisNegatives2.baseline.jsonc @@ -0,0 +1,861 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.t/*HIGHLIGHTS*/his; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this./*HIGHLIGHTS*/this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.thi/*HIGHLIGHTS*/s; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.t/*HIGHLIGHTS*/his; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.th/*HIGHLIGHTS*/is; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThisNegatives2.ts === +// this; +// this; +// +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// module m { +// function f() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// class A { +// public b = this.method1; +// +// public method1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private method2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// public static staticB = this.staticMethod1; +// +// public static staticMethod1() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.this; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// +// private static staticMethod2() { +// this; +// this; +// () => this; +// () => { +// if (this) { +// this; +// } +// else { +// this.th/*HIGHLIGHTS*/is; +// } +// } +// function inside() { +// this; +// (function (_) { +// this; +// })(this); +// } +// } +// } +// +// var x = { +// f() { +// this; +// }, +// g() { +// this; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow.baseline.jsonc new file mode 100644 index 0000000000000..573211c88bf26 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow.baseline.jsonc @@ -0,0 +1,365 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] true; +// [|{| kind: "none" |}throw|] false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}return|] 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// [|{| kind: "none" |}throw|] "Something"; +// } +// finally { +// [|{| kind: "none" |}throw|] "Also something"; +// } +// if (a > 0) { +// [|{| kind: "none" |}return|] (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// [|{| kind: "none" |}throw|] 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|] true; +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] false; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow2.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow2.baseline.jsonc new file mode 100644 index 0000000000000..f45fdee624223 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow2.baseline.jsonc @@ -0,0 +1,43 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow2.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow3.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow3.baseline.jsonc new file mode 100644 index 0000000000000..53ef365815e81 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow3.baseline.jsonc @@ -0,0 +1,89 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow3.ts === +// function f(a: number) { +// try { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow3.ts === +// function f(a: number) { +// try { +// [|{| kind: "none" |}throw|] "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow4.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow4.baseline.jsonc new file mode 100644 index 0000000000000..c08f7ebf8df81 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow4.baseline.jsonc @@ -0,0 +1,227 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow4.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// [|{| kind: "none" |}throw|] "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow4.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// [|{| kind: "none" |}throw|] "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow4.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// [|{| kind: "none" |}throw|] "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow4.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}return|] true; +// } +// [|{| kind: "none" |}throw|] "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow4.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// [|{| kind: "none" |}return|]; +// +// if (false) { +// [|{| kind: "none" |}return|] true; +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { throw 4 }) +// +// return; +// return true; +// throw false; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow5.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow5.baseline.jsonc new file mode 100644 index 0000000000000..aaa9fe56c9ab2 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow5.baseline.jsonc @@ -0,0 +1,43 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow5.ts === +// function f(a: number) { +// try { +// throw "Hello"; +// +// try { +// throw 10; +// } +// catch (x) { +// return 100; +// } +// finally { +// throw 10; +// } +// } +// catch (x) { +// throw "Something"; +// } +// finally { +// throw "Also something"; +// } +// if (a > 0) { +// return (function () { +// return; +// return; +// return; +// +// if (false) { +// return true; +// } +// throw "Hello!"; +// })() || true; +// } +// +// throw 10; +// +// var unusued = [1, 2, 3, 4].map(x => { /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 4 }) +// +// return; +// return true; +// throw false; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow6.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow6.baseline.jsonc new file mode 100644 index 0000000000000..bb44b2ec8b084 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow6.baseline.jsonc @@ -0,0 +1,51 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow6.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 100; +// +// try { +// throw 0; +// var x = () => { throw 0; }; +// } +// catch (y) { +// var x = () => { throw 0; }; +// [|{| kind: "none" |}throw|] 200; +// } +// finally { +// [|{| kind: "none" |}throw|] 300; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow6.ts === +// [|{| kind: "none" |}throw|] 100; +// +// try { +// throw 0; +// var x = () => { throw 0; }; +// } +// catch (y) { +// var x = () => { throw 0; }; +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 200; +// } +// finally { +// [|{| kind: "none" |}throw|] 300; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow6.ts === +// [|{| kind: "none" |}throw|] 100; +// +// try { +// throw 0; +// var x = () => { throw 0; }; +// } +// catch (y) { +// var x = () => { throw 0; }; +// [|{| kind: "none" |}throw|] 200; +// } +// finally { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 300; +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow7.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow7.baseline.jsonc new file mode 100644 index 0000000000000..2296a1e7450b1 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow7.baseline.jsonc @@ -0,0 +1,112 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow7.ts === +// try { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}throw|] 10; +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// +// [|{| kind: "none" |}throw|] 10; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow7.ts === +// try { +// [|{| kind: "none" |}throw|] 10; +// +// try { +// throw 10; +// } +// catch (x) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// +// [|{| kind: "none" |}throw|] 10; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow7.ts === +// try { +// [|{| kind: "none" |}throw|] 10; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}throw|] 10; +// } +// finally { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// +// [|{| kind: "none" |}throw|] 10; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow7.ts === +// try { +// [|{| kind: "none" |}throw|] 10; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}throw|] 10; +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// } +// finally { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// +// [|{| kind: "none" |}throw|] 10; + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow7.ts === +// try { +// [|{| kind: "none" |}throw|] 10; +// +// try { +// throw 10; +// } +// catch (x) { +// [|{| kind: "none" |}throw|] 10; +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// } +// finally { +// [|{| kind: "none" |}throw|] 10; +// } +// +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesThrow8.baseline.jsonc b/tests/baselines/reference/getOccurrencesThrow8.baseline.jsonc new file mode 100644 index 0000000000000..4e1dd61c8449b --- /dev/null +++ b/tests/baselines/reference/getOccurrencesThrow8.baseline.jsonc @@ -0,0 +1,20 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesThrow8.ts === +// try { +// throw 10; +// +// try { +// /*HIGHLIGHTS*/[|{| kind: "none" |}throw|] 10; +// } +// catch (x) { +// throw 10; +// } +// finally { +// throw 10; +// } +// } +// finally { +// throw 10; +// } +// +// throw 10; \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesTryCatchFinally.baseline.jsonc b/tests/baselines/reference/getOccurrencesTryCatchFinally.baseline.jsonc new file mode 100644 index 0000000000000..1e800ae04e9aa --- /dev/null +++ b/tests/baselines/reference/getOccurrencesTryCatchFinally.baseline.jsonc @@ -0,0 +1,57 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally.ts === +// /*HIGHLIGHTS*/[|{| kind: "none" |}try|] { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|] (e) { +// } +// [|{| kind: "none" |}finally|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally.ts === +// [|{| kind: "none" |}try|] { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}cat/*HIGHLIGHTS*/ch|] (e) { +// } +// [|{| kind: "none" |}finally|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally.ts === +// [|{| kind: "none" |}try|] { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|] (e) { +// } +// [|{| kind: "none" |}fina/*HIGHLIGHTS*/lly|] { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesTryCatchFinally2.baseline.jsonc b/tests/baselines/reference/getOccurrencesTryCatchFinally2.baseline.jsonc new file mode 100644 index 0000000000000..ea412ca7b0626 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesTryCatchFinally2.baseline.jsonc @@ -0,0 +1,57 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts === +// try { +// [|{| kind: "none" |}t/*HIGHLIGHTS*/ry|] { +// } +// [|{| kind: "none" |}catch|] (x) { +// } +// +// try { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts === +// try { +// [|{| kind: "none" |}tr/*HIGHLIGHTS*/y|] { +// } +// [|{| kind: "none" |}catch|] (x) { +// } +// +// try { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts === +// try { +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}c/*HIGHLIGHTS*/atch|] (x) { +// } +// +// try { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesTryCatchFinally3.baseline.jsonc b/tests/baselines/reference/getOccurrencesTryCatchFinally3.baseline.jsonc new file mode 100644 index 0000000000000..418fa4aa49c59 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesTryCatchFinally3.baseline.jsonc @@ -0,0 +1,57 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// [|{| kind: "none" |}t/*HIGHLIGHTS*/ry|] { +// } +// [|{| kind: "none" |}finally|] { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// [|{| kind: "none" |}tr/*HIGHLIGHTS*/y|] { +// } +// [|{| kind: "none" |}finally|] { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}finall/*HIGHLIGHTS*/y|] { +// } +// } +// catch (e) { +// } +// finally { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesTryCatchFinally4.baseline.jsonc b/tests/baselines/reference/getOccurrencesTryCatchFinally4.baseline.jsonc new file mode 100644 index 0000000000000..e1cd7548f0ffd --- /dev/null +++ b/tests/baselines/reference/getOccurrencesTryCatchFinally4.baseline.jsonc @@ -0,0 +1,157 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// [|{| kind: "none" |}try|]/*HIGHLIGHTS*/ { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|] (e) { +// } +// [|{| kind: "none" |}finally|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// try { +// [|{| kind: "none" |}try|]/*HIGHLIGHTS*/ { +// } +// [|{| kind: "none" |}catch|] (x) { +// } +// +// try { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// try { +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}catch|]/*HIGHLIGHTS*/ (x) { +// } +// +// try { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// [|{| kind: "none" |}try|]/*HIGHLIGHTS*/ { +// } +// [|{| kind: "none" |}finally|] { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}finally|]/*HIGHLIGHTS*/ { +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// try { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally {/*HIGHLIGHTS*/ +// } +// } +// catch (e) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// [|{| kind: "none" |}try|] { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|]/*HIGHLIGHTS*/ (e) { +// } +// [|{| kind: "none" |}finally|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts === +// [|{| kind: "none" |}try|] { +// try { +// } +// catch (x) { +// } +// +// try { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|] (e) { +// } +// [|{| kind: "none" |}finally|]/*HIGHLIGHTS*/ { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesTryCatchFinallyBroken.baseline.jsonc b/tests/baselines/reference/getOccurrencesTryCatchFinallyBroken.baseline.jsonc new file mode 100644 index 0000000000000..2db466d8b67fa --- /dev/null +++ b/tests/baselines/reference/getOccurrencesTryCatchFinallyBroken.baseline.jsonc @@ -0,0 +1,337 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t /*HIGHLIGHTS*/ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// [|{| kind: "none" |}t/*HIGHLIGHTS*/ry|] { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// [|{| kind: "none" |}fin/*HIGHLIGHTS*/ally|] { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// [|{| kind: "none" |}c/*HIGHLIGHTS*/atch|] (e) { +// } +// [|{| kind: "none" |}finally|] { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// [|{| kind: "none" |}catch|] (e) { +// } +// [|{| kind: "none" |}f/*HIGHLIGHTS*/inally|] { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// [|{| kind: "none" |}t/*HIGHLIGHTS*/ry|] { +// } +// [|{| kind: "none" |}catch|] { +// } +// [|{| kind: "none" |}finally|] { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}catc/*HIGHLIGHTS*/h|] { +// } +// [|{| kind: "none" |}finally|] { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// [|{| kind: "none" |}try|] { +// } +// [|{| kind: "none" |}catch|] { +// } +// /*HIGHLIGHTS*/[|{| kind: "none" |}finally|] { +// } +// +// // Missing try entirely +// catch (x) { +// } +// finally { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// [|{| kind: "none" |}cat/*HIGHLIGHTS*/ch|] (x) { +// } +// [|{| kind: "none" |}finally|] { +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts === +// t ry { +// try { +// } +// ctch (x) { +// } +// +// tr { +// } +// finally { +// } +// } +// catch (e) { +// } +// finally { +// } +// +// // Missing catch variable +// try { +// } +// catch { +// } +// finally { +// } +// +// // Missing try entirely +// [|{| kind: "none" |}catch|] (x) { +// } +// [|{| kind: "none" |}final/*HIGHLIGHTS*/ly|] { +// } \ No newline at end of file diff --git a/tests/baselines/reference/getOccurrencesYield.baseline.jsonc b/tests/baselines/reference/getOccurrencesYield.baseline.jsonc new file mode 100644 index 0000000000000..9ed1934ab08a7 --- /dev/null +++ b/tests/baselines/reference/getOccurrencesYield.baseline.jsonc @@ -0,0 +1,48 @@ +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesYield.ts === +// function* f() { +// /*HIGHLIGHTS*/[|{| kind: "none" |}yield|] 100; +// [|{| kind: "none" |}yield|] [|{| kind: "none" |}yield|] 200; +// class Foo { +// *memberFunction() { +// return yield 1; +// } +// } +// return function* g() { +// yield 1; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesYield.ts === +// function* f() { +// [|{| kind: "none" |}yield|] 100; +// /*HIGHLIGHTS*/[|{| kind: "none" |}yield|] [|{| kind: "none" |}yield|] 200; +// class Foo { +// *memberFunction() { +// return yield 1; +// } +// } +// return function* g() { +// yield 1; +// } +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/getOccurrencesYield.ts === +// function* f() { +// [|{| kind: "none" |}yield|] 100; +// [|{| kind: "none" |}yield|] /*HIGHLIGHTS*/[|{| kind: "none" |}yield|] 200; +// class Foo { +// *memberFunction() { +// return yield 1; +// } +// } +// return function* g() { +// yield 1; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/getPropertySymbolsFromBaseTypesDoesntCrash.baseline.jsonc b/tests/baselines/reference/getPropertySymbolsFromBaseTypesDoesntCrash.baseline.jsonc new file mode 100644 index 0000000000000..7749b35cd6195 --- /dev/null +++ b/tests/baselines/reference/getPropertySymbolsFromBaseTypesDoesntCrash.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/file1.ts === +// class ClassA implements IInterface { +// <|private /*HIGHLIGHTS*/[|{| kind: "reference" |}value|]: number;|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/getReferencesAtPosition-pp.baseline.jsonc b/tests/baselines/reference/getReferencesAtPosition-pp.baseline.jsonc index 4952ae0af6875..cddc523973f84 100644 --- a/tests/baselines/reference/getReferencesAtPosition-pp.baseline.jsonc +++ b/tests/baselines/reference/getReferencesAtPosition-pp.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -5,9 +6,9 @@ // // } // -// /*FIND ALL REFS*/public [|start|](){ +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -21,100 +22,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // /*FIND ALL REFS*/<|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -122,9 +109,9 @@ // // } // -// public /*FIND ALL REFS*/[|start|](){ +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -138,100 +125,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public /*FIND ALL REFS*/[|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -239,9 +212,9 @@ // // } // -// public [|start|](){ +// <|public [|{| isWriteAccess: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -255,94 +228,79 @@ // second./*FIND ALL REFS*/[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims-pp/findAllRefsOnDefinition.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/shims-pp/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getReferencesAtPosition.baseline.jsonc b/tests/baselines/reference/getReferencesAtPosition.baseline.jsonc index 6ef0a5765689b..023c2097e666c 100644 --- a/tests/baselines/reference/getReferencesAtPosition.baseline.jsonc +++ b/tests/baselines/reference/getReferencesAtPosition.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -5,9 +6,9 @@ // // } // -// /*FIND ALL REFS*/public [|start|](){ +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -21,100 +22,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // /*FIND ALL REFS*/<|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -122,9 +109,9 @@ // // } // -// public /*FIND ALL REFS*/[|start|](){ +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -138,100 +125,86 @@ // second.[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public /*FIND ALL REFS*/[|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === // export class Test{ // @@ -239,9 +212,9 @@ // // } // -// public [|start|](){ +// <|public [|{| isWriteAccess: true |}start|](){ // return this; -// } +// }|> // // public stop(){ // return this; @@ -255,94 +228,79 @@ // second./*FIND ALL REFS*/[|start|](); // second.stop(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "kind": "method", - "name": "(method) Test.start(): this", - "textSpan": { - "start": 58, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "start", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 51, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 58, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts", - "contextSpan": { - "start": 51, - "length": 42 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/shims/findAllRefsOnDefinition.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/shims/findAllRefsOnDefinition-import.ts === + // export class Test{ + // + // constructor(){ + // + // } + // + // <|public [|start|](){ + // return this; + // }|> + // + // public stop(){ + // return this; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.start(): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/getRenameInfo-pp.baseline.jsonc b/tests/baselines/reference/getRenameInfo-pp.baseline.jsonc new file mode 100644 index 0000000000000..ecfaaef8a8bfd --- /dev/null +++ b/tests/baselines/reference/getRenameInfo-pp.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/shims-pp/getRenameInfo-pp.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to Bar in a comment. +// "this is a reference to Bar in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/getRenameInfo-shims.baseline.jsonc b/tests/baselines/reference/getRenameInfo-shims.baseline.jsonc new file mode 100644 index 0000000000000..2da08f3bb4257 --- /dev/null +++ b/tests/baselines/reference/getRenameInfo-shims.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/shims/getRenameInfo-shims.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to Bar in a comment. +// "this is a reference to Bar in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAcrossMultipleProjects.baseline.jsonc b/tests/baselines/reference/goToDefinitionAcrossMultipleProjects.baseline.jsonc new file mode 100644 index 0000000000000..0a497368992a7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAcrossMultipleProjects.baseline.jsonc @@ -0,0 +1,63 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|var [|{| defId: 0 |}x|]: number;|> + +// === /tests/cases/fourslash/b.ts === +// <|var [|{| defId: 1 |}x|]: number;|> + +// === /tests/cases/fourslash/c.ts === +// <|var [|{| defId: 2 |}x|]: number;|> + +// === /tests/cases/fourslash/d.ts === +// <|var [|{| defId: 3 |}x|]: number;|> + +// === /tests/cases/fourslash/e.ts === +// /// +// /// +// /// +// /// +// /*GOTO DEF*/[|x|]++; + + // === Details === + [ + { + "defId": 0, + "kind": "var", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "var", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "var", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 3, + "kind": "var", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAlias.baseline.jsonc b/tests/baselines/reference/goToDefinitionAlias.baseline.jsonc new file mode 100644 index 0000000000000..cb6b2feadcfc3 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAlias.baseline.jsonc @@ -0,0 +1,117 @@ +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// <|import [|alias1|] = require("fileb");|> +// module Module { +// export import alias2 = alias1; +// } +// +// // Type position +// var t1: /*GOTO DEF*/alias1.IFoo; +// var t2: Module.alias2.IFoo; +// +// // Value posistion +// var v1 = new alias1.Foo(); +// var v2 = new Module.alias2.Foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "alias1", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// <|import [|alias1|] = require("fileb");|> +// module Module { +// export import alias2 = alias1; +// } +// +// // Type position +// var t1: alias1.IFoo; +// var t2: Module.alias2.IFoo; +// +// // Value posistion +// var v1 = new /*GOTO DEF*/alias1.Foo(); +// var v2 = new Module.alias2.Foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "alias1", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// import alias1 = require("fileb"); +// module Module { +// <|export import [|alias2|] = alias1;|> +// } +// +// // Type position +// var t1: alias1.IFoo; +// var t2: Module./*GOTO DEF*/alias2.IFoo; +// +// // Value posistion +// var v1 = new alias1.Foo(); +// var v2 = new Module.alias2.Foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "alias2", + "containerName": "Module", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// import alias1 = require("fileb"); +// module Module { +// <|export import [|alias2|] = alias1;|> +// } +// +// // Type position +// var t1: alias1.IFoo; +// var t2: Module.alias2.IFoo; +// +// // Value posistion +// var v1 = new alias1.Foo(); +// var v2 = new Module./*GOTO DEF*/alias2.Foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "alias2", + "containerName": "Module", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAmbiants.baseline.jsonc b/tests/baselines/reference/goToDefinitionAmbiants.baseline.jsonc new file mode 100644 index 0000000000000..d6afdd5a52f39 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAmbiants.baseline.jsonc @@ -0,0 +1,152 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionAmbiants.ts === +// <|declare var [|ambientVar|];|> +// declare function ambientFunction(); +// declare class ambientClass { +// constructor(); +// static method(); +// public method(); +// } +// +// /*GOTO DEF POS*/ambientVar = 1; +// ambientFunction(); +// var ambientClassVariable = new ambientClass(); +// ambientClass.method(); +// ambientClassVariable.method(); + + // === Details === + [ + { + "kind": "var", + "name": "ambientVar", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionAmbiants.ts === +// declare var ambientVar; +// <|declare function [|ambientFunction|]();|> +// declare class ambientClass { +// constructor(); +// static method(); +// public method(); +// } +// +// ambientVar = 1; +// /*GOTO DEF POS*/ambientFunction(); +// var ambientClassVariable = new ambientClass(); +// ambientClass.method(); +// ambientClassVariable.method(); + + // === Details === + [ + { + "kind": "function", + "name": "ambientFunction", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionAmbiants.ts === +// declare var ambientVar; +// declare function ambientFunction(); +// declare class ambientClass { +// [|constructor();|] +// static method(); +// public method(); +// } +// +// ambientVar = 1; +// ambientFunction(); +// var ambientClassVariable = new /*GOTO DEF POS*/ambientClass(); +// ambientClass.method(); +// ambientClassVariable.method(); + + // === Details === + [ + { + "kind": "constructor", + "name": "__constructor", + "containerName": "ambientClass", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionAmbiants.ts === +// declare var ambientVar; +// declare function ambientFunction(); +// declare class ambientClass { +// constructor(); +// <|static [|method|]();|> +// public method(); +// } +// +// ambientVar = 1; +// ambientFunction(); +// var ambientClassVariable = new ambientClass(); +// ambientClass./*GOTO DEF POS*/method(); +// ambientClassVariable.method(); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "ambientClass", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionAmbiants.ts === +// declare var ambientVar; +// declare function ambientFunction(); +// declare class ambientClass { +// constructor(); +// static method(); +// <|public [|method|]();|> +// } +// +// ambientVar = 1; +// ambientFunction(); +// var ambientClassVariable = new ambientClass(); +// ambientClass.method(); +// ambientClassVariable./*GOTO DEF POS*/method(); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "ambientClass", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionApparentTypeProperties.baseline.jsonc b/tests/baselines/reference/goToDefinitionApparentTypeProperties.baseline.jsonc new file mode 100644 index 0000000000000..eb5655a13f662 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionApparentTypeProperties.baseline.jsonc @@ -0,0 +1,47 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts === +// interface Number { +// <|[|myObjectMethod|](): number;|> +// } +// +// var o = 0; +// o./*GOTO DEF*/myObjectMethod(); +// o["myObjectMethod"](); + + // === Details === + [ + { + "kind": "method", + "name": "myObjectMethod", + "containerName": "Number", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts === +// interface Number { +// <|[|myObjectMethod|](): number;|> +// } +// +// var o = 0; +// o.myObjectMethod(); +// o["/*GOTO DEF*/myObjectMethod"](); + + // === Details === + [ + { + "kind": "method", + "name": "myObjectMethod", + "containerName": "Number", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAwait1.baseline.jsonc b/tests/baselines/reference/goToDefinitionAwait1.baseline.jsonc new file mode 100644 index 0000000000000..38a13e7262b99 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAwait1.baseline.jsonc @@ -0,0 +1,31 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait1.ts === +// <|async function [|foo|]() { +// /*GOTO DEF*/await Promise.resolve(0); +// }|> +// function notAsync() { +// await Promise.resolve(0); +// } + + // === Details === + [ + { + "kind": "function", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait1.ts === +// async function foo() { +// await Promise.resolve(0); +// } +// function notAsync() { +// /*GOTO DEF*/await Promise.resolve(0); +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAwait2.baseline.jsonc b/tests/baselines/reference/goToDefinitionAwait2.baseline.jsonc new file mode 100644 index 0000000000000..cfeefe4b4bcc7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAwait2.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait2.ts === +// /*GOTO DEF*/await Promise.resolve(0); \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAwait3.baseline.jsonc b/tests/baselines/reference/goToDefinitionAwait3.baseline.jsonc new file mode 100644 index 0000000000000..b9c43e65ee5ac --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAwait3.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait3.ts === +// class C { +// notAsync() { +// /*GOTO DEF*/await Promise.resolve(0); +// } +// +// async foo() { +// await Promise.resolve(0); +// } +// } + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait3.ts === +// class C { +// notAsync() { +// await Promise.resolve(0); +// } +// +// <|async [|foo|]() { +// /*GOTO DEF*/await Promise.resolve(0); +// }|> +// } + + // === Details === + [ + { + "kind": "method", + "name": "foo", + "containerName": "C", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionAwait4.baseline.jsonc b/tests/baselines/reference/goToDefinitionAwait4.baseline.jsonc new file mode 100644 index 0000000000000..af74eead799a0 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionAwait4.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionAwait4.ts === +// async function outerAsyncFun() { +// let [|{| contextId: 0 |}af|] = <|async () => { +// /*GOTO DEF*/await Promise.resolve(0); +// }|> +// } + + // === Details === + [ + { + "kind": "function", + "name": "af", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionBuiltInTypes.baseline.jsonc b/tests/baselines/reference/goToDefinitionBuiltInTypes.baseline.jsonc new file mode 100644 index 0000000000000..82b5d87d26767 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionBuiltInTypes.baseline.jsonc @@ -0,0 +1,33 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInTypes.ts === +// var n: /*GOTO DEF*/number; +// var s: string; +// var b: boolean; +// var v: void; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInTypes.ts === +// var n: number; +// var s: /*GOTO DEF*/string; +// var b: boolean; +// var v: void; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInTypes.ts === +// var n: number; +// var s: string; +// var b: /*GOTO DEF*/boolean; +// var v: void; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInTypes.ts === +// var n: number; +// var s: string; +// var b: boolean; +// var v: /*GOTO DEF*/void; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionBuiltInValues.baseline.jsonc b/tests/baselines/reference/goToDefinitionBuiltInValues.baseline.jsonc new file mode 100644 index 0000000000000..4630edde0284a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionBuiltInValues.baseline.jsonc @@ -0,0 +1,47 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInValues.ts === +// var u = /*GOTO DEF*/undefined; +// var n = null; +// var a = function() { return arguments; }; +// var t = true; +// var f = false; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInValues.ts === +// var u = undefined; +// var n = /*GOTO DEF*/null; +// var a = function() { return arguments; }; +// var t = true; +// var f = false; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInValues.ts === +// var u = undefined; +// var n = null; +// var a = function() { return /*GOTO DEF*/arguments; }; +// var t = true; +// var f = false; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInValues.ts === +// var u = undefined; +// var n = null; +// var a = function() { return arguments; }; +// var t = /*GOTO DEF*/true; +// var f = false; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionBuiltInValues.ts === +// var u = undefined; +// var n = null; +// var a = function() { return arguments; }; +// var t = true; +// var f = /*GOTO DEF*/false; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionCSSPatternAmbientModule.baseline.jsonc b/tests/baselines/reference/goToDefinitionCSSPatternAmbientModule.baseline.jsonc new file mode 100644 index 0000000000000..51222b9c2030b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionCSSPatternAmbientModule.baseline.jsonc @@ -0,0 +1,32 @@ +// === goToDefinition === +// === /tests/cases/fourslash/index.css === +// [|{| defId: 0 |}|]html { font-size: 16px; } + +// === /tests/cases/fourslash/types.ts === +// <|declare module [|{| defId: 1 |}"*.css"|] { +// const styles: any; +// export = styles; +// }|> + +// === /tests/cases/fourslash/index.ts === +// import styles from /*GOTO DEF*/[|"./index.css"|]; + + // === Details === + [ + { + "defId": 0, + "kind": "script", + "name": "./index.css", + "unverified": true + }, + { + "defId": 1, + "kind": "module", + "name": "\"*.css\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionClassStaticBlocks.baseline.jsonc b/tests/baselines/reference/goToDefinitionClassStaticBlocks.baseline.jsonc new file mode 100644 index 0000000000000..2fb5e9a99aef4 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionClassStaticBlocks.baseline.jsonc @@ -0,0 +1,138 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts === +// class ClassStaticBocks { +// static x; +// /*GOTO DEF*/<|[|{| textSpan: true, defId: 0 |}static|] {}|> +// static y; +// <|[|{| defId: 1 |}static|] {}|> +// static y; +// <|[|{| defId: 2 |}static|] {}|> +// } + + // === Details === + [ + { + "defId": 0, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts === +// class ClassStaticBocks { +// static x; +// <|[|{| defId: 0 |}static|] {}|> +// static y; +// /*GOTO DEF*/<|[|{| textSpan: true, defId: 1 |}static|] {}|> +// static y; +// <|[|{| defId: 2 |}static|] {}|> +// } + + // === Details === + [ + { + "defId": 0, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts === +// class ClassStaticBocks { +// static x; +// <|[|{| defId: 0 |}static|] {}|> +// static y; +// <|[|{| defId: 1 |}static|] {}|> +// static y; +// /*GOTO DEF*/<|[|{| textSpan: true, defId: 2 |}static|] {}|> +// } + + // === Details === + [ + { + "defId": 0, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "constructor", + "name": "static {}", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionConstructorOfClassExpression01.baseline.jsonc b/tests/baselines/reference/goToDefinitionConstructorOfClassExpression01.baseline.jsonc new file mode 100644 index 0000000000000..c888ae3719bfc --- /dev/null +++ b/tests/baselines/reference/goToDefinitionConstructorOfClassExpression01.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts === +// var x = class C { +// [|constructor() { +// var other = new /*GOTO DEF*/C; +// }|] +// } + + // === Details === + [ + { + "kind": "constructor", + "name": "__constructor", + "containerName": "C", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.baseline.jsonc b/tests/baselines/reference/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.baseline.jsonc new file mode 100644 index 0000000000000..ddce59197c58c --- /dev/null +++ b/tests/baselines/reference/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts === +// namespace Foo { +// export var x; +// } +// +// class Foo { +// [|constructor() { +// }|] +// } +// +// var x = new /*GOTO DEF*/Foo(); + + // === Details === + [ + { + "kind": "constructor", + "name": "__constructor", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionConstructorOverloads.baseline.jsonc b/tests/baselines/reference/goToDefinitionConstructorOverloads.baseline.jsonc new file mode 100644 index 0000000000000..5b02b3f55a46a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionConstructorOverloads.baseline.jsonc @@ -0,0 +1,73 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionConstructorOverloads.ts === +// class ConstructorOverload { +// [|constructor();|] +// constructor(foo: string); +// constructor(foo: any) { } +// } +// +// var constructorOverload = new /*GOTO DEF*/ConstructorOverload(); +// var constructorOverload = new ConstructorOverload("foo"); + + // === Details === + [ + { + "kind": "constructor", + "name": "__constructor", + "containerName": "ConstructorOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionConstructorOverloads.ts === +// class ConstructorOverload { +// constructor(); +// [|constructor(foo: string);|] +// constructor(foo: any) { } +// } +// +// var constructorOverload = new ConstructorOverload(); +// var constructorOverload = new /*GOTO DEF*/ConstructorOverload("foo"); + + // === Details === + [ + { + "kind": "constructor", + "name": "__constructor", + "containerName": "ConstructorOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionConstructorOverloads.ts === +// class ConstructorOverload { +// /*GOTO DEF*/constructor(); +// constructor(foo: string); +// [|constructor(foo: any) { }|] +// } +// +// var constructorOverload = new ConstructorOverload(); +// var constructorOverload = new ConstructorOverload("foo"); + + // === Details === + [ + { + "kind": "class", + "name": "ConstructorOverload", + "containerName": "", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDecorator.baseline.jsonc b/tests/baselines/reference/goToDefinitionDecorator.baseline.jsonc new file mode 100644 index 0000000000000..92fa4e85c4c4b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDecorator.baseline.jsonc @@ -0,0 +1,59 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|function [|decorator|](target) { +// return target; +// }|> +// function decoratorFactory(...args) { +// return target => target; +// } + +// === /tests/cases/fourslash/b.ts === +// @/*GOTO DEF*/[|decorator|] +// class C { +// @decoratorFactory(a, "22", true) +// method() {} +// } + + // === Details === + [ + { + "kind": "function", + "name": "decorator", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// function decorator(target) { +// return target; +// } +// <|function [|decoratorFactory|](...args) { +// return target => target; +// }|> + +// === /tests/cases/fourslash/b.ts === +// @decorator +// class C { +// @[|decora/*GOTO DEF*/torFactory|](a, "22", true) +// method() {} +// } + + // === Details === + [ + { + "kind": "function", + "name": "decoratorFactory", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDecoratorOverloads.baseline.jsonc b/tests/baselines/reference/goToDefinitionDecoratorOverloads.baseline.jsonc new file mode 100644 index 0000000000000..e332e8d2cca88 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDecoratorOverloads.baseline.jsonc @@ -0,0 +1,55 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts === +// async function f() {} +// +// <|function [|dec|](target: any, propertyKey: string): void;|> +// function dec(target: any, propertyKey: symbol): void; +// function dec(target: any, propertyKey: string | symbol) {} +// +// declare const s: symbol; +// class C { +// @/*GOTO DEF*/dec f() {} +// @dec [s]() {} +// } + + // === Details === + [ + { + "kind": "function", + "name": "dec", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts === +// async function f() {} +// +// function dec(target: any, propertyKey: string): void; +// <|function [|dec|](target: any, propertyKey: symbol): void;|> +// function dec(target: any, propertyKey: string | symbol) {} +// +// declare const s: symbol; +// class C { +// @dec f() {} +// @/*GOTO DEF*/dec [s]() {} +// } + + // === Details === + [ + { + "kind": "function", + "name": "dec", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDestructuredRequire1.baseline.jsonc b/tests/baselines/reference/goToDefinitionDestructuredRequire1.baseline.jsonc new file mode 100644 index 0000000000000..bbb5425d3eb24 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDestructuredRequire1.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/util.js === +// <|class [|Util|] {}|> +// module.exports = { Util }; + +// === /tests/cases/fourslash/index.js === +// const { Util } = require('./util'); +// new [|Util|]/*GOTO DEF*/() + + // === Details === + [ + { + "kind": "class", + "name": "Util", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDestructuredRequire2.baseline.jsonc b/tests/baselines/reference/goToDefinitionDestructuredRequire2.baseline.jsonc new file mode 100644 index 0000000000000..de86e5b6e39d9 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDestructuredRequire2.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/util.js === +// <|class [|Util|] {}|> +// module.exports = { Util }; + +// === /tests/cases/fourslash/index.js === +// const { Util } = require('./reexport'); +// new [|Util|]/*GOTO DEF*/() + + // === Details === + [ + { + "kind": "class", + "name": "Util", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDifferentFile.baseline.jsonc b/tests/baselines/reference/goToDefinitionDifferentFile.baseline.jsonc new file mode 100644 index 0000000000000..15be2db2211b9 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDifferentFile.baseline.jsonc @@ -0,0 +1,147 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Definition.ts === +// <|var [|remoteVariable|];|> +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Consumption.ts === +// /*GOTO DEF POS*/remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "var", + "name": "remoteVariable", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// <|function [|remoteFunction|]() { }|> +// class remoteClass { } +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// /*GOTO DEF POS*/remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "function", + "name": "remoteFunction", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// <|class [|remoteClass|] { }|> +// interface remoteInterface{ } +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new /*GOTO DEF POS*/remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "class", + "name": "remoteClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// <|interface [|remoteInterface|]{ }|> +// module remoteModule{ export var foo = 1;} + +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements /*GOTO DEF POS*/remoteInterface { } +// var fooVar = remoteModule.foo; + + // === Details === + [ + { + "kind": "interface", + "name": "remoteInterface", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Definition.ts === +// var remoteVariable; +// function remoteFunction() { } +// class remoteClass { } +// interface remoteInterface{ } +// <|module [|remoteModule|]{ export var foo = 1;}|> + +// === /tests/cases/fourslash/goToDefinitionDifferentFile_Consumption.ts === +// remoteVariable = 1; +// remoteFunction(); +// var foo = new remoteClass(); +// class fooCls implements remoteInterface { } +// var fooVar = /*GOTO DEF POS*/remoteModule.foo; + + // === Details === + [ + { + "kind": "module", + "name": "remoteModule", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDifferentFileIndirectly.baseline.jsonc b/tests/baselines/reference/goToDefinitionDifferentFileIndirectly.baseline.jsonc new file mode 100644 index 0000000000000..2b1b86b5649c5 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDifferentFileIndirectly.baseline.jsonc @@ -0,0 +1,147 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/Remote2.ts === +// <|var [|rem2Var|];|> +// function rem2Fn() { } +// class rem2Cls { } +// interface rem2Int{} +// module rem2Mod { export var foo; } + +// === /tests/cases/fourslash/Definition.ts === +// /*GOTO DEF POS*/rem2Var = 1; +// rem2Fn(); +// var rem2foo = new rem2Cls(); +// class rem2fooCls implements rem2Int { } +// var rem2fooVar = rem2Mod.foo; + + // === Details === + [ + { + "kind": "var", + "name": "rem2Var", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/Remote2.ts === +// var rem2Var; +// <|function [|rem2Fn|]() { }|> +// class rem2Cls { } +// interface rem2Int{} +// module rem2Mod { export var foo; } + +// === /tests/cases/fourslash/Definition.ts === +// rem2Var = 1; +// /*GOTO DEF POS*/rem2Fn(); +// var rem2foo = new rem2Cls(); +// class rem2fooCls implements rem2Int { } +// var rem2fooVar = rem2Mod.foo; + + // === Details === + [ + { + "kind": "function", + "name": "rem2Fn", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/Remote2.ts === +// var rem2Var; +// function rem2Fn() { } +// <|class [|rem2Cls|] { }|> +// interface rem2Int{} +// module rem2Mod { export var foo; } + +// === /tests/cases/fourslash/Definition.ts === +// rem2Var = 1; +// rem2Fn(); +// var rem2foo = new /*GOTO DEF POS*/rem2Cls(); +// class rem2fooCls implements rem2Int { } +// var rem2fooVar = rem2Mod.foo; + + // === Details === + [ + { + "kind": "class", + "name": "rem2Cls", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/Remote2.ts === +// var rem2Var; +// function rem2Fn() { } +// class rem2Cls { } +// <|interface [|rem2Int|]{}|> +// module rem2Mod { export var foo; } + +// === /tests/cases/fourslash/Definition.ts === +// rem2Var = 1; +// rem2Fn(); +// var rem2foo = new rem2Cls(); +// class rem2fooCls implements /*GOTO DEF POS*/rem2Int { } +// var rem2fooVar = rem2Mod.foo; + + // === Details === + [ + { + "kind": "interface", + "name": "rem2Int", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/Remote2.ts === +// var rem2Var; +// function rem2Fn() { } +// class rem2Cls { } +// interface rem2Int{} +// <|module [|rem2Mod|] { export var foo; }|> + +// === /tests/cases/fourslash/Definition.ts === +// rem2Var = 1; +// rem2Fn(); +// var rem2foo = new rem2Cls(); +// class rem2fooCls implements rem2Int { } +// var rem2fooVar = /*GOTO DEF POS*/rem2Mod.foo; + + // === Details === + [ + { + "kind": "module", + "name": "rem2Mod", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDynamicImport1.baseline.jsonc b/tests/baselines/reference/goToDefinitionDynamicImport1.baseline.jsonc new file mode 100644 index 0000000000000..262ecf48db079 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDynamicImport1.baseline.jsonc @@ -0,0 +1,31 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// [||]export function foo() { return "foo"; } +// import("./f/*GOTO DEF*/oo") +// var x = import("./foo") + + // === Details === + [ + { + "kind": "script", + "name": "./foo", + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// [||]export function foo() { return "foo"; } +// import("./foo") +// var x = import("./fo/*GOTO DEF*/o") + + // === Details === + [ + { + "kind": "script", + "name": "./foo", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDynamicImport2.baseline.jsonc b/tests/baselines/reference/goToDefinitionDynamicImport2.baseline.jsonc new file mode 100644 index 0000000000000..a6f5f690910bb --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDynamicImport2.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// <|export function [|bar|]() { return "bar"; }|> +// var x = import("./foo"); +// x.then(foo => { +// foo.b/*GOTO DEF*/ar(); +// }) + + // === Details === + [ + { + "kind": "function", + "name": "bar", + "containerName": "\"/tests/cases/fourslash/foo\"", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDynamicImport3.baseline.jsonc b/tests/baselines/reference/goToDefinitionDynamicImport3.baseline.jsonc new file mode 100644 index 0000000000000..e38a242fb8e32 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDynamicImport3.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// <|export function [|bar|]() { return "bar"; }|> +// import('./foo').then(({ ba/*GOTO DEF*/r }) => undefined); + + // === Details === + [ + { + "kind": "function", + "name": "bar", + "containerName": "\"/tests/cases/fourslash/foo\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionDynamicImport4.baseline.jsonc b/tests/baselines/reference/goToDefinitionDynamicImport4.baseline.jsonc new file mode 100644 index 0000000000000..e38a242fb8e32 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionDynamicImport4.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// <|export function [|bar|]() { return "bar"; }|> +// import('./foo').then(({ ba/*GOTO DEF*/r }) => undefined); + + // === Details === + [ + { + "kind": "function", + "name": "bar", + "containerName": "\"/tests/cases/fourslash/foo\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExpandoElementAccess.baseline.jsonc b/tests/baselines/reference/goToDefinitionExpandoElementAccess.baseline.jsonc new file mode 100644 index 0000000000000..f13e2d3b1c682 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExpandoElementAccess.baseline.jsonc @@ -0,0 +1,29 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionExpandoElementAccess.ts === +// function f() {} +// <|f[[|{| defId: 0 |}"x"|]]|> = 0; +// <|f[/*GOTO DEF*/[|{| textSpan: true, defId: 1 |}"x"|]]|> = 1; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "\"x\"", + "containerName": "f", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "property", + "name": "\"x\"", + "containerName": "f", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName.baseline.jsonc new file mode 100644 index 0000000000000..93ec953bf211b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// [||]export class Foo {} + +// === /tests/cases/fourslash/b.ts === +// import n = require([|'./a/*GOTO DEF*/'|]); +// var x = new n.Foo(); + + // === Details === + [ + { + "kind": "script", + "name": "./a", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName2.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName2.baseline.jsonc new file mode 100644 index 0000000000000..6d37cf49cb013 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName2.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// [||]class Foo {} +// export var x = 0; + +// === /tests/cases/fourslash/b.ts === +// import n = require([|'./a/*GOTO DEF*/'|]); +// var x = new n.Foo(); + + // === Details === + [ + { + "kind": "script", + "name": "./a", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName3.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName3.baseline.jsonc new file mode 100644 index 0000000000000..ee65a0338a5d8 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName3.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|"e"|] { +// class Foo { } +// }|> + +// === /tests/cases/fourslash/b.ts === +// import n = require([|'e/*GOTO DEF*/'|]); +// var x = new n.Foo(); + + // === Details === + [ + { + "kind": "module", + "name": "\"e\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName4.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName4.baseline.jsonc new file mode 100644 index 0000000000000..67e165283ec85 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName4.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// import n = require('unknown/*GOTO DEF*/'); \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName5.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName5.baseline.jsonc new file mode 100644 index 0000000000000..b6fee0b156cf8 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName5.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|{| textSpan: true |}"external/*GOTO DEF*/"|] { +// class Foo { } +// }|> + + // === Details === + [ + { + "kind": "module", + "name": "\"external\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName6.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName6.baseline.jsonc new file mode 100644 index 0000000000000..f7479d219ce67 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName6.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|"e"|] { +// class Foo { } +// }|> + +// === /tests/cases/fourslash/b.ts === +// import * from [|'e/*GOTO DEF*/'|]; + + // === Details === + [ + { + "kind": "module", + "name": "\"e\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName7.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName7.baseline.jsonc new file mode 100644 index 0000000000000..5dce1633ff316 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName7.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|"e"|] { +// class Foo { } +// }|> + +// === /tests/cases/fourslash/b.ts === +// import {Foo, Bar} from [|'e/*GOTO DEF*/'|]; + + // === Details === + [ + { + "kind": "module", + "name": "\"e\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName8.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName8.baseline.jsonc new file mode 100644 index 0000000000000..084432af168f7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName8.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|"e"|] { +// class Foo { } +// }|> + +// === /tests/cases/fourslash/b.ts === +// export {Foo, Bar} from [|'e/*GOTO DEF*/'|]; + + // === Details === + [ + { + "kind": "module", + "name": "\"e\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionExternalModuleName9.baseline.jsonc b/tests/baselines/reference/goToDefinitionExternalModuleName9.baseline.jsonc new file mode 100644 index 0000000000000..20a100188fd40 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionExternalModuleName9.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|declare module [|"e"|] { +// class Foo { } +// }|> + +// === /tests/cases/fourslash/b.ts === +// export * from [|'e/*GOTO DEF*/'|]; + + // === Details === + [ + { + "kind": "module", + "name": "\"e\"", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionFunctionOverloads.baseline.jsonc b/tests/baselines/reference/goToDefinitionFunctionOverloads.baseline.jsonc new file mode 100644 index 0000000000000..fb0650cc3585b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionFunctionOverloads.baseline.jsonc @@ -0,0 +1,95 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloads.ts === +// <|function [|functionOverload|](value: number);|> +// function functionOverload(value: string); +// function functionOverload() {} +// +// /*GOTO DEF*/functionOverload(123); +// functionOverload("123"); +// functionOverload({}); + + // === Details === + [ + { + "kind": "function", + "name": "functionOverload", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloads.ts === +// function functionOverload(value: number); +// <|function [|functionOverload|](value: string);|> +// function functionOverload() {} +// +// functionOverload(123); +// /*GOTO DEF*/functionOverload("123"); +// functionOverload({}); + + // === Details === + [ + { + "kind": "function", + "name": "functionOverload", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloads.ts === +// <|function [|functionOverload|](value: number);|> +// function functionOverload(value: string); +// function functionOverload() {} +// +// functionOverload(123); +// functionOverload("123"); +// /*GOTO DEF*/functionOverload({}); + + // === Details === + [ + { + "kind": "function", + "name": "functionOverload", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloads.ts === +// function /*GOTO DEF*/functionOverload(value: number); +// function functionOverload(value: string); +// <|function [|functionOverload|]() {}|> +// +// functionOverload(123); +// functionOverload("123"); +// functionOverload({}); + + // === Details === + [ + { + "kind": "function", + "name": "functionOverload", + "containerName": "", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionFunctionOverloadsInClass.baseline.jsonc b/tests/baselines/reference/goToDefinitionFunctionOverloadsInClass.baseline.jsonc new file mode 100644 index 0000000000000..c72c37097f17a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionFunctionOverloadsInClass.baseline.jsonc @@ -0,0 +1,49 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts === +// class clsInOverload { +// static fnOverload(); +// static /*GOTO DEF*/fnOverload(foo: string); +// <|static [|fnOverload|](foo: any) { }|> +// public fnOverload(): any; +// public fnOverload(foo: string); +// public fnOverload(foo: any) { return "foo" } +// +// constructor() { } +// } + + // === Details === + [ + { + "kind": "method", + "name": "fnOverload", + "containerName": "clsInOverload", + "isLocal": false, + "isAmbient": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts === +// class clsInOverload { +// static fnOverload(); +// static fnOverload(foo: string); +// static fnOverload(foo: any) { } +// public /*GOTO DEF*/fnOverload(): any; +// public fnOverload(foo: string); +// <|public [|fnOverload|](foo: any) { return "foo" }|> +// +// constructor() { } +// } + + // === Details === + [ + { + "kind": "method", + "name": "fnOverload", + "containerName": "clsInOverload", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionFunctionType.baseline.jsonc b/tests/baselines/reference/goToDefinitionFunctionType.baseline.jsonc new file mode 100644 index 0000000000000..9470149e9a137 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionFunctionType.baseline.jsonc @@ -0,0 +1,84 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionFunctionType.ts === +// <|const [|c|]: () => void;|> +// /*GOTO DEF POS*/c(); +// function test(cb: () => void) { +// cb(); +// } +// class C { +// prop: () => void; +// m() { +// this.prop(); +// } +// } + + // === Details === + [ + { + "kind": "const", + "name": "c", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionFunctionType.ts === +// const c: () => void; +// c(); +// function test(<|[|cb|]: () => void|>) { +// /*GOTO DEF POS*/cb(); +// } +// class C { +// prop: () => void; +// m() { +// this.prop(); +// } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "cb", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionFunctionType.ts === +// const c: () => void; +// c(); +// function test(cb: () => void) { +// cb(); +// } +// class C { +// <|[|prop|]: () => void;|> +// m() { +// this./*GOTO DEF POS*/prop(); +// } +// } + + // === Details === + [ + { + "kind": "property", + "name": "prop", + "containerName": "C", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImplicitConstructor.baseline.jsonc b/tests/baselines/reference/goToDefinitionImplicitConstructor.baseline.jsonc new file mode 100644 index 0000000000000..9d42b372ca9bf --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImplicitConstructor.baseline.jsonc @@ -0,0 +1,18 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionImplicitConstructor.ts === +// <|class [|ImplicitConstructor|] { +// }|> +// var implicitConstructor = new /*GOTO DEF POS*/ImplicitConstructor(); + + // === Details === + [ + { + "kind": "class", + "name": "ImplicitConstructor", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImport1.baseline.jsonc b/tests/baselines/reference/goToDefinitionImport1.baseline.jsonc new file mode 100644 index 0000000000000..c50c28d24c1c0 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImport1.baseline.jsonc @@ -0,0 +1,15 @@ +// === goToDefinition === +// === /b.ts === +// [||]export const foo = 1; + +// === /a.ts === +// import { foo } from [|"./b/*GOTO DEF*/"|]; + + // === Details === + [ + { + "kind": "script", + "name": "./b", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImport2.baseline.jsonc b/tests/baselines/reference/goToDefinitionImport2.baseline.jsonc new file mode 100644 index 0000000000000..458dd91a4ea6b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImport2.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /a.ts === +// import { foo } from/*GOTO DEF*/ "./b"; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImport3.baseline.jsonc b/tests/baselines/reference/goToDefinitionImport3.baseline.jsonc new file mode 100644 index 0000000000000..c1b20b05572ab --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImport3.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /a.ts === +// import { foo } from /*GOTO DEF*/ "./b"; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportMeta.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportMeta.baseline.jsonc new file mode 100644 index 0000000000000..c048743372a15 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportMeta.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// /// +// /// +// import.me/*GOTO DEF*/ta; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames.baseline.jsonc new file mode 100644 index 0000000000000..131114a2a6c68 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/b.ts === +// export {/*GOTO DEF*/[|Class|]} from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames10.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames10.baseline.jsonc new file mode 100644 index 0000000000000..e88151c540d9b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames10.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// <|class [|Class|] { +// f; +// }|> +// module.exports.Class = Class; + +// === /tests/cases/fourslash/b.js === +// const { Class } = require("./a"); +// /*GOTO DEF*/[|Class|]; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames11.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames11.baseline.jsonc new file mode 100644 index 0000000000000..85287fc5a49e4 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames11.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// <|class [|Class|] { +// f; +// }|> +// module.exports = { Class }; + +// === /tests/cases/fourslash/b.js === +// const { Class } = require("./a"); +// /*GOTO DEF*/[|Class|]; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames2.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames2.baseline.jsonc new file mode 100644 index 0000000000000..47b96fec33dd5 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames2.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/b.ts === +// import {/*GOTO DEF*/[|Class|]} from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames3.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames3.baseline.jsonc new file mode 100644 index 0000000000000..8433d559700d7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames3.baseline.jsonc @@ -0,0 +1,55 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/e.ts === +// import {M, C, I} from "./d"; +// var c = new /*GOTO DEF*/[|C|](); + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/e.ts === +// import {M, /*GOTO DEF*/[|C|], I} from "./d"; +// var c = new C(); + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames4.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames4.baseline.jsonc new file mode 100644 index 0000000000000..6785cff924ede --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames4.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/b.ts === +// import {Class as /*GOTO DEF*/[|ClassAlias|]} from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames5.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames5.baseline.jsonc new file mode 100644 index 0000000000000..39bd0526c9a6d --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames5.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export module Module { +// } +// <|export class [|Class|] { +// private f; +// }|> +// export interface Interface { +// x; +// } + +// === /tests/cases/fourslash/b.ts === +// export {Class as /*GOTO DEF*/[|ClassAlias|]} from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "\"/tests/cases/fourslash/a\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames6.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames6.baseline.jsonc new file mode 100644 index 0000000000000..56e1091adf8ec --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames6.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// [|export module Module { +// } +// export class Class { +// private f; +// } +// export interface Interface { +// x; +// }|] + +// === /tests/cases/fourslash/b.ts === +// import /*GOTO DEF*/[|alias|] = require("./a"); + + // === Details === + [ + { + "kind": "module", + "name": "\"/tests/cases/fourslash/a\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames7.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames7.baseline.jsonc new file mode 100644 index 0000000000000..eee59d8f86cba --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames7.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|class [|Class|] { +// private f; +// }|> +// export default Class; + +// === /tests/cases/fourslash/b.ts === +// import /*GOTO DEF*/[|defaultExport|] from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames8.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames8.baseline.jsonc new file mode 100644 index 0000000000000..c13ddc4991beb --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames8.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// <|class [|Class|] { +// private f; +// }|> +// export { Class }; + +// === /tests/cases/fourslash/b.js === +// import { /*GOTO DEF*/[|Class|] } from "./a"; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImportedNames9.baseline.jsonc b/tests/baselines/reference/goToDefinitionImportedNames9.baseline.jsonc new file mode 100644 index 0000000000000..7ac6016365912 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImportedNames9.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// <|class [|Class|] { +// f; +// }|> +// export { Class }; + +// === /tests/cases/fourslash/b.js === +// const { Class } = require("./a"); +// /*GOTO DEF*/[|Class|]; + + // === Details === + [ + { + "kind": "class", + "name": "Class", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionImports.baseline.jsonc b/tests/baselines/reference/goToDefinitionImports.baseline.jsonc new file mode 100644 index 0000000000000..d9c6422c06023 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionImports.baseline.jsonc @@ -0,0 +1,102 @@ +// === goToDefinition === +// === /b.ts === +// import f, { x } from "./a"; +// <|import * as [|a|] from "./a";|> +// import b = require("./b"); +// f; +// x; +// /*GOTO DEF*/a; +// b; + + // === Details === + [ + { + "kind": "alias", + "name": "a", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.ts === +// <|export default function [|f|]() {}|> +// export const x = 0; + +// === /b.ts === +// import f, { x } from "./a"; +// import * as a from "./a"; +// import b = require("./b"); +// /*GOTO DEF*/[|f|]; +// x; +// a; +// b; + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "a", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /a.ts === +// export default function f() {} +// <|export const [|x|] = 0;|> + +// === /b.ts === +// import f, { x } from "./a"; +// import * as a from "./a"; +// import b = require("./b"); +// f; +// /*GOTO DEF*/[|x|]; +// a; +// b; + + // === Details === + [ + { + "kind": "const", + "name": "x", + "containerName": "a", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /b.ts === +// [|import f, { x } from "./a"; +// import * as a from "./a"; +// import b = require("./b"); +// f; +// x; +// a; +// /*GOTO DEF*/b;|] + + // === Details === + [ + { + "kind": "module", + "name": "\"/b\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionInMemberDeclaration.baseline.jsonc b/tests/baselines/reference/goToDefinitionInMemberDeclaration.baseline.jsonc new file mode 100644 index 0000000000000..26becbd8e796d --- /dev/null +++ b/tests/baselines/reference/goToDefinitionInMemberDeclaration.baseline.jsonc @@ -0,0 +1,285 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// <|interface [|IFoo|] { method1(): number; }|> +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// enum Enum { value1, value2 }; +// +// class Bar { +// public _interface: IFo/*GOTO DEF*/o = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// <|interface [|IFoo|] { method1(): number; }|> +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// enum Enum { value1, value2 }; +// +// class Bar { +// public _interface: IFoo = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IF/*GOTO DEF*/oo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// <|interface [|IFoo|] { method1(): number; }|> +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// enum Enum { value1, value2 }; +// +// class Bar { +// public _interface: IFoo = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFo/*GOTO DEF*/o) { +// } +// } + + // === Details === + [ + { + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// interface IFoo { method1(): number; } +// +// <|class [|Foo|] implements IFoo { +// public method1(): number { return 0; } +// }|> +// +// enum Enum { value1, value2 }; +// +// class Bar { +// public _interface: IFoo = new Foo(); +// public _class: Fo/*GOTO DEF*/o = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "class", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// interface IFoo { method1(): number; } +// +// <|class [|Foo|] implements IFoo { +// public method1(): number { return 0; } +// }|> +// +// enum Enum { value1, value2 }; +// +// class Bar { +// public _interface: IFoo = new Fo/*GOTO DEF*/o(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "class", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// interface IFoo { method1(): number; } +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// <|enum [|Enum|] { value1, value2 }|>; +// +// class Bar { +// public _interface: IFoo = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: E/*GOTO DEF*/num = Enum.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "enum", + "name": "Enum", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// interface IFoo { method1(): number; } +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// <|enum [|Enum|] { value1, value2 }|>; +// +// class Bar { +// public _interface: IFoo = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = En/*GOTO DEF*/um.value1; +// public _self: Bar; +// +// constructor(public _inConstructor: IFoo) { +// } +// } + + // === Details === + [ + { + "kind": "enum", + "name": "Enum", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts === +// interface IFoo { method1(): number; } +// +// class Foo implements IFoo { +// public method1(): number { return 0; } +// } +// +// enum Enum { value1, value2 }; +// +// <|class [|Bar|] { +// public _interface: IFoo = new Foo(); +// public _class: Foo = new Foo(); +// public _list: IFoo[]=[]; +// public _enum: Enum = Enum.value1; +// public _self: Ba/*GOTO DEF*/r; +// +// constructor(public _inConstructor: IFoo) { +// } +// }|> + + // === Details === + [ + { + "kind": "class", + "name": "Bar", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionInTypeArgument.baseline.jsonc b/tests/baselines/reference/goToDefinitionInTypeArgument.baseline.jsonc new file mode 100644 index 0000000000000..be427bc07060d --- /dev/null +++ b/tests/baselines/reference/goToDefinitionInTypeArgument.baseline.jsonc @@ -0,0 +1,43 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionInTypeArgument.ts === +// class Foo { } +// +// <|class [|Bar|] { }|> +// +// var x = new Foo(); + + // === Details === + [ + { + "kind": "class", + "name": "Bar", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionInTypeArgument.ts === +// <|class [|Foo|] { }|> +// +// class Bar { } +// +// var x = new Fo/*GOTO DEF POS*/o(); + + // === Details === + [ + { + "kind": "class", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionIndexSignature.baseline.jsonc b/tests/baselines/reference/goToDefinitionIndexSignature.baseline.jsonc new file mode 100644 index 0000000000000..46e66c2928c1e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionIndexSignature.baseline.jsonc @@ -0,0 +1,197 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionIndexSignature.ts === +// interface I { +// [|[x: string]: boolean;|] +// } +// interface J { +// [x: string]: number; +// } +// interface K { +// [x: `a${string}`]: string; +// [x: `${string}b`]: string; +// } +// declare const i: I; +// i./*GOTO DEF*/foo; +// declare const ij: I | J; +// ij.foo; +// declare const k: K; +// k.a; +// k.b; +// k.ab; + + // === Details === + [ + { + "kind": "index", + "name": "__index", + "containerName": "I", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionIndexSignature.ts === +// interface I { +// [|{| defId: 0 |}[x: string]: boolean;|] +// } +// interface J { +// [|{| defId: 1 |}[x: string]: number;|] +// } +// interface K { +// [x: `a${string}`]: string; +// [x: `${string}b`]: string; +// } +// declare const i: I; +// i.foo; +// declare const ij: I | J; +// ij./*GOTO DEF*/foo; +// declare const k: K; +// k.a; +// k.b; +// k.ab; + + // === Details === + [ + { + "defId": 0, + "kind": "index", + "name": "__index", + "containerName": "I", + "isLocal": false, + "isAmbient": false, + "unverified": false + }, + { + "defId": 1, + "kind": "index", + "name": "__index", + "containerName": "J", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionIndexSignature.ts === +// interface I { +// [x: string]: boolean; +// } +// interface J { +// [x: string]: number; +// } +// interface K { +// [|[x: `a${string}`]: string;|] +// [x: `${string}b`]: string; +// } +// declare const i: I; +// i.foo; +// declare const ij: I | J; +// ij.foo; +// declare const k: K; +// k./*GOTO DEF*/a; +// k.b; +// k.ab; + + // === Details === + [ + { + "kind": "index", + "name": "__index", + "containerName": "K", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionIndexSignature.ts === +// interface I { +// [x: string]: boolean; +// } +// interface J { +// [x: string]: number; +// } +// interface K { +// [x: `a${string}`]: string; +// [|[x: `${string}b`]: string;|] +// } +// declare const i: I; +// i.foo; +// declare const ij: I | J; +// ij.foo; +// declare const k: K; +// k.a; +// k./*GOTO DEF*/b; +// k.ab; + + // === Details === + [ + { + "kind": "index", + "name": "__index", + "containerName": "K", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionIndexSignature.ts === +// interface I { +// [x: string]: boolean; +// } +// interface J { +// [x: string]: number; +// } +// interface K { +// [|{| defId: 0 |}[x: `a${string}`]: string;|] +// [|{| defId: 1 |}[x: `${string}b`]: string;|] +// } +// declare const i: I; +// i.foo; +// declare const ij: I | J; +// ij.foo; +// declare const k: K; +// k.a; +// k.b; +// k./*GOTO DEF*/ab; + + // === Details === + [ + { + "defId": 0, + "kind": "index", + "name": "__index", + "containerName": "K", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "index", + "name": "__index", + "containerName": "K", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionIndexSignature2.baseline.jsonc b/tests/baselines/reference/goToDefinitionIndexSignature2.baseline.jsonc new file mode 100644 index 0000000000000..7abd22b55443e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionIndexSignature2.baseline.jsonc @@ -0,0 +1,4 @@ +// === goToDefinition === +// === /a.js === +// const o = {}; +// o./*GOTO DEF*/foo; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionInterfaceAfterImplement.baseline.jsonc b/tests/baselines/reference/goToDefinitionInterfaceAfterImplement.baseline.jsonc new file mode 100644 index 0000000000000..44b92c74d329c --- /dev/null +++ b/tests/baselines/reference/goToDefinitionInterfaceAfterImplement.baseline.jsonc @@ -0,0 +1,25 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts === +// <|interface [|sInt|] { +// sVar: number; +// sFn: () => void; +// }|> +// +// class iClass implements /*GOTO DEF POS*/sInt { +// public sVar = 1; +// public sFn() { +// } +// } + + // === Details === + [ + { + "kind": "interface", + "name": "sInt", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionJsModuleExports.baseline.jsonc b/tests/baselines/reference/goToDefinitionJsModuleExports.baseline.jsonc new file mode 100644 index 0000000000000..41420eba3b314 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionJsModuleExports.baseline.jsonc @@ -0,0 +1,41 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.js === +// x.[|{| contextId: 0 |}test|] = <|() => { }|> +// x./*GOTO DEF*/test(); +// x.test3 = function () { } +// x.test3(); + + // === Details === + [ + { + "kind": "function", + "name": "test", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/foo.js === +// x.test = () => { } +// x.test(); +// x.[|{| contextId: 0 |}test3|] = <|function () { }|> +// x./*GOTO DEF*/test3(); + + // === Details === + [ + { + "kind": "local function", + "name": "test3", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionJsModuleName.baseline.jsonc b/tests/baselines/reference/goToDefinitionJsModuleName.baseline.jsonc new file mode 100644 index 0000000000000..da89dcf1f6f12 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionJsModuleName.baseline.jsonc @@ -0,0 +1,15 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.js === +// [||]module.exports = {}; + +// === /tests/cases/fourslash/bar.js === +// var x = require(/*GOTO DEF*/[|"./foo"|]); + + // === Details === + [ + { + "kind": "script", + "name": "./foo", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionJsModuleNameAtImportName.baseline.jsonc b/tests/baselines/reference/goToDefinitionJsModuleNameAtImportName.baseline.jsonc new file mode 100644 index 0000000000000..91341acc47a7b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionJsModuleNameAtImportName.baseline.jsonc @@ -0,0 +1,101 @@ +// === goToDefinition === +// === /foo.js === +// [|function notExported() { } +// class Blah { +// abc = 123; +// } +// module.exports.Blah = Blah;|] + +// === /bar.js === +// const /*GOTO DEF*/[|BlahModule|] = require("./foo.js"); +// new BlahModule.Blah() + + // === Details === + [ + { + "kind": "module", + "name": "\"/foo\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /foo.js === +// [|function notExported() { } +// class Blah { +// abc = 123; +// } +// module.exports.Blah = Blah;|] + +// === /bar.js === +// const BlahModule = require("./foo.js"); +// new /*GOTO DEF*/[|BlahModule|].Blah() + + // === Details === + [ + { + "kind": "module", + "name": "\"/foo\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /foo.js === +// [|function notExported() { } +// class Blah { +// abc = 123; +// } +// module.exports.Blah = Blah;|] + +// === /barTs.ts === +// import /*GOTO DEF*/[|BlahModule|] = require("./foo.js"); +// new BlahModule.Blah() + + // === Details === + [ + { + "kind": "module", + "name": "\"/foo\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /foo.js === +// [|function notExported() { } +// class Blah { +// abc = 123; +// } +// module.exports.Blah = Blah;|] + +// === /barTs.ts === +// import BlahModule = require("./foo.js"); +// new /*GOTO DEF*/[|BlahModule|].Blah() + + // === Details === + [ + { + "kind": "module", + "name": "\"/foo\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionJsxNotSet.baseline.jsonc b/tests/baselines/reference/goToDefinitionJsxNotSet.baseline.jsonc new file mode 100644 index 0000000000000..6caa4e8c4199e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionJsxNotSet.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /foo.jsx === +// const [|{| contextId: 0 |}Foo|] = <|() => ( +//
foo
+// )|>; +// export default Foo; + +// === /bar.jsx === +// import Foo from './foo'; +// const a = + + // === Details === + [ + { + "kind": "function", + "name": "Foo", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionLabels.baseline.jsonc b/tests/baselines/reference/goToDefinitionLabels.baseline.jsonc new file mode 100644 index 0000000000000..6718fc3a5e29b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionLabels.baseline.jsonc @@ -0,0 +1,79 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionLabels.ts === +// [|label1|]: while (true) { +// label2: while (true) { +// break /*GOTO DEF*/label1; +// continue label2; +// () => { break label1; } +// continue unknownLabel; +// } +// } + + // === Details === + [ + { + "kind": "label", + "name": "label1", + "isLocal": true, + "isAmbient": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionLabels.ts === +// label1: while (true) { +// [|label2|]: while (true) { +// break label1; +// continue /*GOTO DEF*/label2; +// () => { break label1; } +// continue unknownLabel; +// } +// } + + // === Details === + [ + { + "kind": "label", + "name": "label2", + "isLocal": true, + "isAmbient": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionLabels.ts === +// [|label1|]: while (true) { +// label2: while (true) { +// break label1; +// continue label2; +// () => { break /*GOTO DEF*/label1; } +// continue unknownLabel; +// } +// } + + // === Details === + [ + { + "kind": "label", + "name": "label1", + "isLocal": true, + "isAmbient": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionLabels.ts === +// label1: while (true) { +// label2: while (true) { +// break label1; +// continue label2; +// () => { break label1; } +// continue /*GOTO DEF*/unknownLabel; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionMetaProperty.baseline.jsonc b/tests/baselines/reference/goToDefinitionMetaProperty.baseline.jsonc new file mode 100644 index 0000000000000..d7369e5eda3bf --- /dev/null +++ b/tests/baselines/reference/goToDefinitionMetaProperty.baseline.jsonc @@ -0,0 +1,72 @@ +// === goToDefinition === +// === /a.ts === +// im/*GOTO DEF*/port.meta; +// function f() { new.target; } + + + +// === goToDefinition === +// === /a.ts === +// import.met/*GOTO DEF*/a; +// function f() { new.target; } + + + +// === goToDefinition === +// === /a.ts === +// import.meta; +// function f() { n/*GOTO DEF*/ew.target; } + + + +// === goToDefinition === +// === /a.ts === +// import.meta; +// <|function [|f|]() { new.t/*GOTO DEF*/arget; }|> + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /b.ts === +// im/*GOTO DEF*/port.m; +// class c { constructor() { new.target; } } + + + +// === goToDefinition === +// === /b.ts === +// import.m; +// class c { constructor() { n/*GOTO DEF*/ew.target; } } + + + +// === goToDefinition === +// === /b.ts === +// import.m; +// <|class [|c|] { constructor() { new.t/*GOTO DEF*/arget; } }|> + + // === Details === + [ + { + "kind": "class", + "name": "c", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionMethodOverloads.baseline.jsonc b/tests/baselines/reference/goToDefinitionMethodOverloads.baseline.jsonc new file mode 100644 index 0000000000000..c859b14616676 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionMethodOverloads.baseline.jsonc @@ -0,0 +1,191 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// <|static [|method|]();|> +// static method(foo: string); +// static method(foo?: any) { } +// public method(): any; +// public method(foo: string); +// public method(foo?: any) { return "foo" } +// } +// // static method +// MethodOverload./*GOTO DEF*/method(); +// MethodOverload.method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload.method(); +// methodOverload.method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// static method(); +// <|static [|method|](foo: string);|> +// static method(foo?: any) { } +// public method(): any; +// public method(foo: string); +// public method(foo?: any) { return "foo" } +// } +// // static method +// MethodOverload.method(); +// MethodOverload./*GOTO DEF*/method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload.method(); +// methodOverload.method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// static method(); +// static method(foo: string); +// static method(foo?: any) { } +// <|public [|method|](): any;|> +// public method(foo: string); +// public method(foo?: any) { return "foo" } +// } +// // static method +// MethodOverload.method(); +// MethodOverload.method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload./*GOTO DEF*/method(); +// methodOverload.method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// static method(); +// static method(foo: string); +// static method(foo?: any) { } +// public method(): any; +// <|public [|method|](foo: string);|> +// public method(foo?: any) { return "foo" } +// } +// // static method +// MethodOverload.method(); +// MethodOverload.method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload.method(); +// methodOverload./*GOTO DEF*/method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// static /*GOTO DEF*/method(); +// static method(foo: string); +// <|static [|method|](foo?: any) { }|> +// public method(): any; +// public method(foo: string); +// public method(foo?: any) { return "foo" } +// } +// // static method +// MethodOverload.method(); +// MethodOverload.method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload.method(); +// methodOverload.method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionMethodOverloads.ts === +// class MethodOverload { +// static method(); +// static method(foo: string); +// static method(foo?: any) { } +// public /*GOTO DEF*/method(): any; +// public method(foo: string); +// <|public [|method|](foo?: any) { return "foo" }|> +// } +// // static method +// MethodOverload.method(); +// MethodOverload.method("123"); +// // instance method +// var methodOverload = new MethodOverload(); +// methodOverload.method(); +// methodOverload.method("456"); + + // === Details === + [ + { + "kind": "method", + "name": "method", + "containerName": "MethodOverload", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionMultipleDefinitions.baseline.jsonc b/tests/baselines/reference/goToDefinitionMultipleDefinitions.baseline.jsonc new file mode 100644 index 0000000000000..7e5d13994c0e5 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionMultipleDefinitions.baseline.jsonc @@ -0,0 +1,90 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// <|interface [|{| defId: 0 |}IFoo|] { +// instance1: number; +// }|> + +// === /tests/cases/fourslash/b.ts === +// <|interface [|{| defId: 1 |}IFoo|] { +// instance2: number; +// }|> +// +// <|interface [|{| defId: 2 |}IFoo|] { +// instance3: number; +// }|> +// +// var ifoo: IFo/*GOTO DEF*/o; + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "interface", + "name": "IFoo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/c.ts === +// <|module [|{| defId: 0 |}Module|] { +// export class c1 { } +// }|> + +// === /tests/cases/fourslash/d.ts === +// <|module [|{| defId: 1 |}Module|] { +// export class c2 { } +// }|> + +// === /tests/cases/fourslash/e.ts === +// [|Modul/*GOTO DEF*/e|]; + + // === Details === + [ + { + "defId": 0, + "kind": "module", + "name": "Module", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "module", + "name": "Module", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionNewExpressionTargetNotClass.baseline.jsonc b/tests/baselines/reference/goToDefinitionNewExpressionTargetNotClass.baseline.jsonc new file mode 100644 index 0000000000000..f26bb5b52e756 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionNewExpressionTargetNotClass.baseline.jsonc @@ -0,0 +1,62 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts === +// class C2 { +// } +// <|let [|{| defId: 0 |}I|]: { +// [|{| defId: 1 |}new(): C2;|] +// };|> +// new /*GOTO DEF*/I(); +// let I2: { +// }; +// new I2(); + + // === Details === + [ + { + "defId": 0, + "kind": "let", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "index", + "name": "__new", + "containerName": "I", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts === +// class C2 { +// } +// let I: { +// new(): C2; +// }; +// new I(); +// <|let [|I2|]: { +// };|> +// new /*GOTO DEF*/I2(); + + // === Details === + [ + { + "kind": "let", + "name": "I2", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionObjectBindingElementPropertyName01.baseline.jsonc b/tests/baselines/reference/goToDefinitionObjectBindingElementPropertyName01.baseline.jsonc new file mode 100644 index 0000000000000..00b9fadd4a9fb --- /dev/null +++ b/tests/baselines/reference/goToDefinitionObjectBindingElementPropertyName01.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts === +// interface I { +// <|[|property1|]: number;|> +// property2: string; +// } +// +// var foo: I; +// var { /*GOTO DEF*/property1: prop1 } = foo; + + // === Details === + [ + { + "kind": "property", + "name": "property1", + "containerName": "I", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionObjectLiteralProperties.baseline.jsonc b/tests/baselines/reference/goToDefinitionObjectLiteralProperties.baseline.jsonc new file mode 100644 index 0000000000000..fc6a57db39d1d --- /dev/null +++ b/tests/baselines/reference/goToDefinitionObjectLiteralProperties.baseline.jsonc @@ -0,0 +1,152 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts === +// var o = { +// <|[|value|]: 0|>, +// get getter() {return 0 }, +// set setter(v: number) { }, +// method: () => { }, +// es6StyleMethod() { } +// }; +// +// o./*GOTO DEF POS*/value; +// o.getter; +// o.setter; +// o.method; +// o.es6StyleMethod; + + // === Details === + [ + { + "kind": "property", + "name": "value", + "containerName": "o", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts === +// var o = { +// value: 0, +// <|get [|getter|]() {return 0 }|>, +// set setter(v: number) { }, +// method: () => { }, +// es6StyleMethod() { } +// }; +// +// o.value; +// o./*GOTO DEF POS*/getter; +// o.setter; +// o.method; +// o.es6StyleMethod; + + // === Details === + [ + { + "kind": "getter", + "name": "getter", + "containerName": "o", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts === +// var o = { +// value: 0, +// get getter() {return 0 }, +// <|set [|setter|](v: number) { }|>, +// method: () => { }, +// es6StyleMethod() { } +// }; +// +// o.value; +// o.getter; +// o./*GOTO DEF POS*/setter; +// o.method; +// o.es6StyleMethod; + + // === Details === + [ + { + "kind": "setter", + "name": "setter", + "containerName": "o", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts === +// var o = { +// value: 0, +// get getter() {return 0 }, +// set setter(v: number) { }, +// <|[|method|]: () => { }|>, +// es6StyleMethod() { } +// }; +// +// o.value; +// o.getter; +// o.setter; +// o./*GOTO DEF POS*/method; +// o.es6StyleMethod; + + // === Details === + [ + { + "kind": "property", + "name": "method", + "containerName": "o", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts === +// var o = { +// value: 0, +// get getter() {return 0 }, +// set setter(v: number) { }, +// method: () => { }, +// <|[|es6StyleMethod|]() { }|> +// }; +// +// o.value; +// o.getter; +// o.setter; +// o.method; +// o./*GOTO DEF POS*/es6StyleMethod; + + // === Details === + [ + { + "kind": "method", + "name": "es6StyleMethod", + "containerName": "o", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionObjectLiteralProperties1.baseline.jsonc b/tests/baselines/reference/goToDefinitionObjectLiteralProperties1.baseline.jsonc new file mode 100644 index 0000000000000..9f1768192b4dc --- /dev/null +++ b/tests/baselines/reference/goToDefinitionObjectLiteralProperties1.baseline.jsonc @@ -0,0 +1,53 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts === +// interface PropsBag { +// <|[|propx|]: number|> +// } +// function foo(arg: PropsBag) {} +// foo({ +// pr/*GOTO DEF*/opx: 10 +// }) +// function bar(firstarg: boolean, secondarg: PropsBag) {} +// bar(true, { +// propx: 10 +// }) + + // === Details === + [ + { + "kind": "property", + "name": "propx", + "containerName": "PropsBag", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts === +// interface PropsBag { +// <|[|propx|]: number|> +// } +// function foo(arg: PropsBag) {} +// foo({ +// propx: 10 +// }) +// function bar(firstarg: boolean, secondarg: PropsBag) {} +// bar(true, { +// pr/*GOTO DEF*/opx: 10 +// }) + + // === Details === + [ + { + "kind": "property", + "name": "propx", + "containerName": "PropsBag", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionObjectSpread.baseline.jsonc b/tests/baselines/reference/goToDefinitionObjectSpread.baseline.jsonc new file mode 100644 index 0000000000000..be28dda36aaf2 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionObjectSpread.baseline.jsonc @@ -0,0 +1,32 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionObjectSpread.ts === +// interface A1 { <|[|{| defId: 0 |}a|]: number|> }; +// interface A2 { <|[|{| defId: 1 |}a|]?: number|> }; +// let a1: A1; +// let a2: A2; +// let a12 = { ...a1, ...a2 }; +// a12.a/*GOTO DEF*/; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "property", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverloadsInMultiplePropertyAccesses.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverloadsInMultiplePropertyAccesses.baseline.jsonc new file mode 100644 index 0000000000000..7ebab5acda16c --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverloadsInMultiplePropertyAccesses.baseline.jsonc @@ -0,0 +1,23 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts === +// namespace A { +// export namespace B { +// export function f(value: number): void; +// <|export function [|f|](value: string): void;|> +// export function f(value: number | string) {} +// } +// } +// A.B./*GOTO DEF*/f(""); + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "B", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember1.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember1.baseline.jsonc new file mode 100644 index 0000000000000..04cdce0517add --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember1.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember1.ts === +// class Foo { +// <|[|p|] = '';|> +// } +// class Bar extends Foo { +// /*GOTO DEF*/override p = ''; +// } + + // === Details === + [ + { + "kind": "property", + "name": "p", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember10.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember10.baseline.jsonc new file mode 100644 index 0000000000000..2a11349dea656 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember10.baseline.jsonc @@ -0,0 +1,7 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo {} +// class Bar extends Foo { +// /** @override/*GOTO DEF*/ */ +// m() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember11.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember11.baseline.jsonc new file mode 100644 index 0000000000000..4ce7b2f5c3fb4 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember11.baseline.jsonc @@ -0,0 +1,69 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo { +// <|[|m|]() {}|> +// } +// class Bar extends Foo { +// /** @over/*GOTO DEF*/ride see {@link https://test.com} description */ +// m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo { +// m() {} +// } +// class Bar extends Foo { +// /** @override se/*GOTO DEF*/e {@link https://test.com} description */ +// m() {} +// } + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo { +// m() {} +// } +// class Bar extends Foo { +// /** @override see {@li/*GOTO DEF*/nk https://test.com} description */ +// m() {} +// } + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo { +// m() {} +// } +// class Bar extends Foo { +// /** @override see {@link https://test.c/*GOTO DEF*/om} description */ +// m() {} +// } + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// class Foo { +// m() {} +// } +// class Bar extends Foo { +// /** @override see {@link https://test.com} /*GOTO DEF*/description */ +// m() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember12.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember12.baseline.jsonc new file mode 100644 index 0000000000000..f8473ae40787a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember12.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember12.ts === +// class Foo { +// <|static [|p|] = '';|> +// } +// class Bar extends Foo { +// static /*GOTO DEF*/override p = ''; +// } + + // === Details === + [ + { + "kind": "property", + "name": "p", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember13.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember13.baseline.jsonc new file mode 100644 index 0000000000000..abc1fd11f44d2 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember13.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember13.ts === +// class Foo { +// <|static [|m|]() {}|> +// } +// class Bar extends Foo { +// static /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember14.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember14.baseline.jsonc new file mode 100644 index 0000000000000..f3f9b29128052 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember14.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember14.ts === +// class A { +// <|[|m|]() {}|> +// } +// class B extends A {} +// class C extends B { +// /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember15.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember15.baseline.jsonc new file mode 100644 index 0000000000000..820792ba9dd0a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember15.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember15.ts === +// class A { +// <|static [|m|]() {}|> +// } +// class B extends A {} +// class C extends B { +// static /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember16.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember16.baseline.jsonc new file mode 100644 index 0000000000000..a4d8c6e600f2c --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember16.baseline.jsonc @@ -0,0 +1,11 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverrideJsdoc.ts === +// export class C extends CompletelyUndefined { +// /** +// * @override/*GOTO DEF*/ +// * @returns {{}} +// */ +// static foo() { +// return {} +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember2.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember2.baseline.jsonc new file mode 100644 index 0000000000000..5e8f9e08aee7d --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember2.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember2.ts === +// class Foo { +// <|[|m|]() {}|> +// } +// +// class Bar extends Foo { +// /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember3.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember3.baseline.jsonc new file mode 100644 index 0000000000000..9fc5449825529 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember3.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember3.ts === +// abstract class Foo { +// <|abstract [|m|]() {}|> +// } +// +// export class Bar extends Foo { +// /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "Foo", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember4.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember4.baseline.jsonc new file mode 100644 index 0000000000000..77c37813d4cb3 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember4.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember4.ts === +// class Foo { +// <|[|m|]() {}|> +// } +// function f () { +// return class extends Foo { +// /*GOTO DEF*/override m() {} +// } +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember5.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember5.baseline.jsonc new file mode 100644 index 0000000000000..d4bdc33e143ed --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember5.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember5.ts === +// class Foo extends (class { +// <|[|m|]() {}|> +// }) { +// /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "(Anonymous class)", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember6.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember6.baseline.jsonc new file mode 100644 index 0000000000000..62684d5287adc --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember6.baseline.jsonc @@ -0,0 +1,8 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember6.ts === +// class Foo { +// m() {} +// } +// class Bar extends Foo { +// /*GOTO DEF*/override m1() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember7.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember7.baseline.jsonc new file mode 100644 index 0000000000000..1b8e13a8715b2 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember7.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember7.ts === +// class Foo { +// /*GOTO DEF*/override m() {} +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember8.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember8.baseline.jsonc new file mode 100644 index 0000000000000..8585ad863d5ed --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember8.baseline.jsonc @@ -0,0 +1,23 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// export class A { +// <|[|m|]() {}|> +// } + +// === /tests/cases/fourslash/./b.ts === +// import { A } from "./a"; +// class B extends A { +// /*GOTO DEF*/[|override|] m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionOverriddenMember9.baseline.jsonc b/tests/baselines/reference/goToDefinitionOverriddenMember9.baseline.jsonc new file mode 100644 index 0000000000000..92331ba313849 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionOverriddenMember9.baseline.jsonc @@ -0,0 +1,23 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionOverriddenMember9.ts === +// interface I { +// m(): void; +// } +// class A { +// <|[|m|]() {}|>; +// } +// class B extends A implements I { +// /*GOTO DEF*/override m() {} +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionPartialImplementation.baseline.jsonc b/tests/baselines/reference/goToDefinitionPartialImplementation.baseline.jsonc new file mode 100644 index 0000000000000..d8295d4a52d74 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionPartialImplementation.baseline.jsonc @@ -0,0 +1,40 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPartialImplementation_1.ts === +// module A { +// <|export interface [|{| defId: 0 |}IA|] { +// y: string; +// }|> +// } + +// === /tests/cases/fourslash/goToDefinitionPartialImplementation_2.ts === +// module A { +// <|export interface [|{| defId: 1 |}IA|] { +// x: number; +// }|> +// +// var x: /*GOTO DEF*/IA; +// } + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "name": "IA", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "interface", + "name": "IA", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionPrimitives.baseline.jsonc b/tests/baselines/reference/goToDefinitionPrimitives.baseline.jsonc new file mode 100644 index 0000000000000..4141a190d1ef4 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionPrimitives.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPrimitives.ts === +// var x: st/*GOTO DEF*/ring; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionPrivateName.baseline.jsonc b/tests/baselines/reference/goToDefinitionPrivateName.baseline.jsonc new file mode 100644 index 0000000000000..921800e237a24 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionPrivateName.baseline.jsonc @@ -0,0 +1,95 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPrivateName.ts === +// class A { +// #method() { } +// <|[|#foo|] = 3;|> +// get #prop() { return ""; } +// set #prop(value: string) { } +// constructor() { +// this./*GOTO DEF*/#foo +// this.#method +// this.#prop +// } +// } + + // === Details === + [ + { + "kind": "property", + "name": "#foo", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPrivateName.ts === +// class A { +// <|[|#method|]() { }|> +// #foo = 3; +// get #prop() { return ""; } +// set #prop(value: string) { } +// constructor() { +// this.#foo +// this./*GOTO DEF*/#method +// this.#prop +// } +// } + + // === Details === + [ + { + "kind": "method", + "name": "#method", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPrivateName.ts === +// class A { +// #method() { } +// #foo = 3; +// <|get [|{| defId: 0 |}#prop|]() { return ""; }|> +// <|set [|{| defId: 1 |}#prop|](value: string) { }|> +// constructor() { +// this.#foo +// this.#method +// this./*GOTO DEF*/#prop +// } +// } + + // === Details === + [ + { + "defId": 0, + "kind": "getter", + "name": "#prop", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "getter", + "name": "#prop", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionPropertyAssignment.baseline.jsonc b/tests/baselines/reference/goToDefinitionPropertyAssignment.baseline.jsonc new file mode 100644 index 0000000000000..11e6753b984db --- /dev/null +++ b/tests/baselines/reference/goToDefinitionPropertyAssignment.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPropertyAssignment.ts === +// <|export const [|Component|] = () => { return "OK"}|> +// Component.displayName = 'Component' +// +// /*GOTO DEF*/Component +// +// Component.displayName + + // === Details === + [ + { + "kind": "const", + "name": "Component", + "containerName": "\"/tests/cases/fourslash/goToDefinitionPropertyAssignment\"", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionPropertyAssignment.ts === +// export const Component = () => { return "OK"} +// <|Component.[|displayName|]|> = 'Component' +// +// Component +// +// Component./*GOTO DEF*/displayName + + // === Details === + [ + { + "kind": "property", + "name": "displayName", + "containerName": "Component", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionRest.baseline.jsonc b/tests/baselines/reference/goToDefinitionRest.baseline.jsonc new file mode 100644 index 0000000000000..68f0909365181 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionRest.baseline.jsonc @@ -0,0 +1,23 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionRest.ts === +// interface Gen { +// x: number; +// <|[|parent|]: Gen;|> +// millenial: string; +// } +// let t: Gen; +// var { x, ...rest } = t; +// rest./*GOTO DEF*/parent; + + // === Details === + [ + { + "kind": "property", + "name": "parent", + "containerName": "Gen", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn1.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn1.baseline.jsonc new file mode 100644 index 0000000000000..9ecb95d264d0e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn1.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn1.ts === +// <|function [|foo|]() { +// /*GOTO DEF*/return 10; +// }|> + + // === Details === + [ + { + "kind": "function", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn2.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn2.baseline.jsonc new file mode 100644 index 0000000000000..7d49154f98d40 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn2.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn2.ts === +// function foo() { +// return [|() => { +// /*GOTO DEF*/return 10; +// }|] +// } + + // === Details === + [ + { + "kind": "function", + "name": "(Anonymous function)", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn3.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn3.baseline.jsonc new file mode 100644 index 0000000000000..a35221ac0f52b --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn3.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn3.ts === +// class C { +// <|[|m|]() { +// /*GOTO DEF*/return 1; +// }|> +// } + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "C", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn4.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn4.baseline.jsonc new file mode 100644 index 0000000000000..3f5477987b014 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn4.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn4.ts === +// /*GOTO DEF*/return; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn5.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn5.baseline.jsonc new file mode 100644 index 0000000000000..27241ffa15e51 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn5.baseline.jsonc @@ -0,0 +1,7 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn5.ts === +// function foo() { +// class Foo { +// static { /*GOTO DEF*/return; } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn6.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn6.baseline.jsonc new file mode 100644 index 0000000000000..b4e516f15999e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn6.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn6.ts === +// function foo() { +// return [|function () { +// /*GOTO DEF*/return 10; +// }|] +// } + + // === Details === + [ + { + "kind": "local function", + "name": "(Anonymous function)", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionReturn7.baseline.jsonc b/tests/baselines/reference/goToDefinitionReturn7.baseline.jsonc new file mode 100644 index 0000000000000..4c4e073cc9bf5 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionReturn7.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionReturn7.ts === +// function foo(a: string, b: string): string; +// function foo(a: number, b: number): number; +// <|function [|foo|](a: any, b: any): any { +// /*GOTO DEF*/return a + b; +// }|> + + // === Details === + [ + { + "kind": "function", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionSameFile.baseline.jsonc b/tests/baselines/reference/goToDefinitionSameFile.baseline.jsonc new file mode 100644 index 0000000000000..a600ec5a02934 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionSameFile.baseline.jsonc @@ -0,0 +1,147 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionSameFile.ts === +// <|var [|localVariable|];|> +// function localFunction() { } +// class localClass { } +// interface localInterface{ } +// module localModule{ export var foo = 1;} +// +// +// /*GOTO DEF POS*/localVariable = 1; +// localFunction(); +// var foo = new localClass(); +// class fooCls implements localInterface { } +// var fooVar = localModule.foo; + + // === Details === + [ + { + "kind": "var", + "name": "localVariable", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionSameFile.ts === +// var localVariable; +// <|function [|localFunction|]() { }|> +// class localClass { } +// interface localInterface{ } +// module localModule{ export var foo = 1;} +// +// +// localVariable = 1; +// /*GOTO DEF POS*/localFunction(); +// var foo = new localClass(); +// class fooCls implements localInterface { } +// var fooVar = localModule.foo; + + // === Details === + [ + { + "kind": "function", + "name": "localFunction", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionSameFile.ts === +// var localVariable; +// function localFunction() { } +// <|class [|localClass|] { }|> +// interface localInterface{ } +// module localModule{ export var foo = 1;} +// +// +// localVariable = 1; +// localFunction(); +// var foo = new /*GOTO DEF POS*/localClass(); +// class fooCls implements localInterface { } +// var fooVar = localModule.foo; + + // === Details === + [ + { + "kind": "class", + "name": "localClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionSameFile.ts === +// var localVariable; +// function localFunction() { } +// class localClass { } +// <|interface [|localInterface|]{ }|> +// module localModule{ export var foo = 1;} +// +// +// localVariable = 1; +// localFunction(); +// var foo = new localClass(); +// class fooCls implements /*GOTO DEF POS*/localInterface { } +// var fooVar = localModule.foo; + + // === Details === + [ + { + "kind": "interface", + "name": "localInterface", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionSameFile.ts === +// var localVariable; +// function localFunction() { } +// class localClass { } +// interface localInterface{ } +// <|module [|localModule|]{ export var foo = 1;}|> +// +// +// localVariable = 1; +// localFunction(); +// var foo = new localClass(); +// class fooCls implements localInterface { } +// var fooVar = /*GOTO DEF POS*/localModule.foo; + + // === Details === + [ + { + "kind": "module", + "name": "localModule", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionScriptImport.baseline.jsonc b/tests/baselines/reference/goToDefinitionScriptImport.baseline.jsonc new file mode 100644 index 0000000000000..8c421840b05b3 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionScriptImport.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToDefinition === +// === /tests/cases/fourslash/scriptThing.ts === +// [||]console.log("woooo side effects") + +// === /tests/cases/fourslash/moduleThing.ts === +// import /*GOTO DEF*/[|"./scriptThing"|]; +// import "./stylez.css"; + + // === Details === + [ + { + "kind": "script", + "name": "./scriptThing", + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/stylez.css === +// [||]div { +// color: magenta; +// } + +// === /tests/cases/fourslash/moduleThing.ts === +// import "./scriptThing"; +// import /*GOTO DEF*/[|"./stylez.css"|]; + + // === Details === + [ + { + "kind": "script", + "name": "./stylez.css", + "unverified": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionScriptImportServer.baseline.jsonc b/tests/baselines/reference/goToDefinitionScriptImportServer.baseline.jsonc new file mode 100644 index 0000000000000..202af5a3a8cdd --- /dev/null +++ b/tests/baselines/reference/goToDefinitionScriptImportServer.baseline.jsonc @@ -0,0 +1,66 @@ +// === goToDefinition === +// === /scriptThing.ts === +// [||]console.log("woooo side effects") + +// === /moduleThing.ts === +// import /*GOTO DEF*/[|"./scriptThing"|]; +// import "./stylez.css"; +// import "./foo.txt"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /stylez.css === +// [||]div { +// color: magenta; +// } + +// === /moduleThing.ts === +// import "./scriptThing"; +// import /*GOTO DEF*/[|"./stylez.css"|]; +// import "./foo.txt"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] + + + +// === goToDefinition === +// === /foo.txt === +// Unavailable file content: +// textSpan: {"start":0,"length":0} + + +// === /moduleThing.ts === +// import "./scriptThing"; +// import "./stylez.css"; +// import /*GOTO DEF*/[|"./foo.txt"|]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShadowVariable.baseline.jsonc b/tests/baselines/reference/goToDefinitionShadowVariable.baseline.jsonc new file mode 100644 index 0000000000000..7b67459d6ff18 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShadowVariable.baseline.jsonc @@ -0,0 +1,20 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionShadowVariable.ts === +// var shadowVariable = "foo"; +// function shadowVariableTestModule() { +// <|var [|shadowVariable|];|> +// /*GOTO DEF POS*/shadowVariable = 1; +// } + + // === Details === + [ + { + "kind": "local var", + "name": "shadowVariable", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShadowVariableInsideModule.baseline.jsonc b/tests/baselines/reference/goToDefinitionShadowVariableInsideModule.baseline.jsonc new file mode 100644 index 0000000000000..04325eb1e4cb1 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShadowVariableInsideModule.baseline.jsonc @@ -0,0 +1,19 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts === +// module shdModule { +// <|var [|shdVar|];|> +// /*GOTO DEF POS*/shdVar = 1; +// } + + // === Details === + [ + { + "kind": "var", + "name": "shdVar", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty01.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty01.baseline.jsonc new file mode 100644 index 0000000000000..2a363875fa670 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty01.baseline.jsonc @@ -0,0 +1,104 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty01.ts === +// <|var [|name|] = "hello";|> +// var id = 100000; +// declare var id; +// var obj = {/*GOTO DEF*/name, id}; +// obj.name; +// obj.id; + + // === Details === + [ + { + "kind": "var", + "name": "name", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty01.ts === +// var name = "hello"; +// <|var [|{| defId: 0 |}id|] = 100000;|> +// <|declare var [|{| defId: 1 |}id|];|> +// var obj = {name, /*GOTO DEF*/id}; +// obj.name; +// obj.id; + + // === Details === + [ + { + "defId": 0, + "kind": "var", + "name": "id", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "var", + "name": "id", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty01.ts === +// var name = "hello"; +// var id = 100000; +// declare var id; +// var obj = {[|name|], id}; +// obj./*GOTO DEF*/name; +// obj.id; + + // === Details === + [ + { + "kind": "property", + "name": "name", + "containerName": "obj", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty01.ts === +// var name = "hello"; +// var id = 100000; +// declare var id; +// var obj = {name, [|id|]}; +// obj.name; +// obj./*GOTO DEF*/id; + + // === Details === + [ + { + "kind": "property", + "name": "id", + "containerName": "obj", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty02.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty02.baseline.jsonc new file mode 100644 index 0000000000000..730e13251e801 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty02.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty02.ts === +// let x = { +// f/*GOTO DEF*/oo +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty03.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty03.baseline.jsonc new file mode 100644 index 0000000000000..adf5faaa7535f --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty03.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty03.ts === +// <|var [|x|] = { +// /*GOTO DEF*/x +// }|> +// let y = { +// y +// } + + // === Details === + [ + { + "kind": "var", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty03.ts === +// var x = { +// x +// } +// <|let [|y|] = { +// /*GOTO DEF*/y +// }|> + + // === Details === + [ + { + "kind": "let", + "name": "y", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty04.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty04.baseline.jsonc new file mode 100644 index 0000000000000..880c4951fdde6 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty04.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty04.ts === +// interface Foo { +// <|[|foo|](): void|> +// } +// +// let x: Foo = { +// f/*GOTO DEF*/oo +// } + + // === Details === + [ + { + "kind": "method", + "name": "foo", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty05.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty05.baseline.jsonc new file mode 100644 index 0000000000000..90b501a8f6ab1 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty05.baseline.jsonc @@ -0,0 +1,32 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty05.ts === +// interface Foo { +// <|[|{| defId: 1 |}foo|](): void|> +// } +// <|const [|{| defId: 0 |}foo|] = 1;|> +// let x: Foo = { +// f/*GOTO DEF*/oo +// } + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "method", + "name": "foo", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionShorthandProperty06.baseline.jsonc b/tests/baselines/reference/goToDefinitionShorthandProperty06.baseline.jsonc new file mode 100644 index 0000000000000..8209c7f2f2d15 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionShorthandProperty06.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionShorthandProperty06.ts === +// interface Foo { +// <|[|foo|](): void|> +// } +// const foo = 1; +// let x: Foo = { +// f/*GOTO DEF*/oo() +// } + + // === Details === + [ + { + "kind": "method", + "name": "foo", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionSignatureAlias.baseline.jsonc b/tests/baselines/reference/goToDefinitionSignatureAlias.baseline.jsonc new file mode 100644 index 0000000000000..0ef3c6de3ef39 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionSignatureAlias.baseline.jsonc @@ -0,0 +1,749 @@ +// === goToDefinition === +// === /a.tsx === +// <|function [|f|]() {}|> +// const g = f; +// const h = g; +// /*GOTO DEF*/f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// <|function [|{| defId: 1 |}f|]() {}|> +// <|const [|{| defId: 0 |}g|] = f;|> +// const h = g; +// f(); +// /*GOTO DEF*/g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "g", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// <|function [|{| defId: 1 |}f|]() {}|> +// const g = f; +// <|const [|{| defId: 0 |}h|] = g;|> +// f(); +// g(); +// /*GOTO DEF*/h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "h", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const [|{| contextId: 0 |}i|] = <|() => 0|>; +// const iFn = function () { return 0; }; +// const j = i; +// /*GOTO DEF*/i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "function", + "name": "i", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const [|{| contextId: 0 |}iFn|] = <|function () { return 0; }|>; +// const j = i; +// i(); +// /*GOTO DEF*/iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "local function", + "name": "iFn", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const [|{| contextId: 0, defId: 1 |}i|] = <|() => 0|>; +// const iFn = function () { return 0; }; +// <|const [|{| defId: 0 |}j|] = i;|> +// i(); +// iFn(); +// /*GOTO DEF*/j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "j", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "function", + "name": "i", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { [|{| contextId: 0 |}m|]: <|() => 0|> }; +// o./*GOTO DEF*/m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "function", + "name": "m", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { [|{| contextId: 0 |}mFn|]: <|function () { return 0; }|> }; +// oFn./*GOTO DEF*/mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "local function", + "name": "mFn", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// <|class [|MyComponent|] extends Component {}|> +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "class", + "name": "MyComponent", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { [|{| defId: 1 |}constructor(props: {}) {}|] } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// <|class [|{| defId: 0 |}MyComponent|] extends Component {}|> +// ; +// new /*GOTO DEF*/MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "class", + "name": "MyComponent", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "constructor", + "name": "__constructor", + "containerName": "Component", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// <|declare const [|MyComponent2|]: ComponentClass;|> +// ; +// new MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "const", + "name": "MyComponent2", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = [|{| defId: 1 |}new () => Component|]; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// <|declare const [|{| defId: 0 |}MyComponent2|]: ComponentClass;|> +// ; +// new /*GOTO DEF*/MyComponent2(); +// +// declare const MyComponent3: ComponentClass2; +// ; +// new MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "MyComponent2", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "", + "name": "__type", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { new(): Component; } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// <|declare const [|MyComponent3|]: ComponentClass2;|> +// ; +// new MyComponent3(); + + // === Details === + [ + { + "kind": "const", + "name": "MyComponent3", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /a.tsx === +// function f() {} +// const g = f; +// const h = g; +// f(); +// g(); +// h(); +// const i = () => 0; +// const iFn = function () { return 0; }; +// const j = i; +// i(); +// iFn(); +// j(); +// const o = { m: () => 0 }; +// o.m(); +// const oFn = { mFn: function () { return 0; } }; +// oFn.mFn(); +// class Component { constructor(props: {}) {} } +// type ComponentClass = new () => Component; +// interface ComponentClass2 { [|{| defId: 1 |}new(): Component;|] } +// +// class MyComponent extends Component {} +// ; +// new MyComponent({}); +// +// declare const MyComponent2: ComponentClass; +// ; +// new MyComponent2(); +// +// <|declare const [|{| defId: 0 |}MyComponent3|]: ComponentClass2;|> +// ; +// new /*GOTO DEF*/MyComponent3(); + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "MyComponent3", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "index", + "name": "__new", + "containerName": "ComponentClass2", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionSignatureAlias_require.baseline.jsonc b/tests/baselines/reference/goToDefinitionSignatureAlias_require.baseline.jsonc new file mode 100644 index 0000000000000..9d6c0fe6f9696 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionSignatureAlias_require.baseline.jsonc @@ -0,0 +1,41 @@ +// === goToDefinition === +// === /a.js === +// module.exports = <|function [|f|]() {}|> + +// === /b.js === +// const f = require("./a"); +// /*GOTO DEF*/[|f|](); + + // === Details === + [ + { + "kind": "local function", + "name": "f", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /a.js === +// module.exports = <|function [|f|]() {}|> + +// === /bar.ts === +// import f = require("./a"); +// /*GOTO DEF*/[|f|](); + + // === Details === + [ + { + "kind": "local function", + "name": "f", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionSimple.baseline.jsonc b/tests/baselines/reference/goToDefinitionSimple.baseline.jsonc new file mode 100644 index 0000000000000..894832a07193e --- /dev/null +++ b/tests/baselines/reference/goToDefinitionSimple.baseline.jsonc @@ -0,0 +1,43 @@ +// === goToDefinition === +// === /tests/cases/fourslash/Definition.ts === +// <|class [|c|] { }|> + +// === /tests/cases/fourslash/Consumption.ts === +// var n = new /*GOTO DEF*/[|c|](); +// var n = new c(); + + // === Details === + [ + { + "kind": "class", + "name": "c", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/Definition.ts === +// <|class [|c|] { }|> + +// === /tests/cases/fourslash/Consumption.ts === +// var n = new c(); +// var n = new [|c|]/*GOTO DEF*/(); + + // === Details === + [ + { + "kind": "class", + "name": "c", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionSourceUnit.baseline.jsonc b/tests/baselines/reference/goToDefinitionSourceUnit.baseline.jsonc new file mode 100644 index 0000000000000..a0df5c690fa18 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionSourceUnit.baseline.jsonc @@ -0,0 +1,41 @@ +// === goToDefinition === +// === /tests/cases/fourslash/a.ts === +// //MyFile Comments +// //more comments +// /// +// /// +// +// class clsInOverload { +// static fnOverload(); +// static fnOverload(foo: string); +// static fnOverload(foo: any) { } +// } +// + + + +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// [||] + +// === /tests/cases/fourslash/a.ts === +// //MyFile Comments +// //more comments +// /// +// /// +// +// class clsInOverload { +// static fnOverload(); +// static fnOverload(foo: string); +// static fnOverload(foo: any) { } +// } +// + + // === Details === + [ + { + "kind": "script", + "name": "b.ts", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTaggedTemplateOverloads.baseline.jsonc b/tests/baselines/reference/goToDefinitionTaggedTemplateOverloads.baseline.jsonc new file mode 100644 index 0000000000000..3c985088eb3af --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTaggedTemplateOverloads.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts === +// <|function [|f|](strs: TemplateStringsArray, x: number): void;|> +// function f(strs: TemplateStringsArray, x: boolean): void; +// function f(strs: TemplateStringsArray, x: number | boolean) {} +// +// /*GOTO DEF*/f`${0}`; +// f`${false}`; + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts === +// function f(strs: TemplateStringsArray, x: number): void; +// <|function [|f|](strs: TemplateStringsArray, x: boolean): void;|> +// function f(strs: TemplateStringsArray, x: number | boolean) {} +// +// f`${0}`; +// /*GOTO DEF*/f`${false}`; + + // === Details === + [ + { + "kind": "function", + "name": "f", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionThis.baseline.jsonc b/tests/baselines/reference/goToDefinitionThis.baseline.jsonc new file mode 100644 index 0000000000000..202c0fe42a1d1 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionThis.baseline.jsonc @@ -0,0 +1,72 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionThis.ts === +// function f(<|[|this|]: number|>) { +// return /*GOTO DEF*/this; +// } +// class C { +// constructor() { return this; } +// get self(this: number) { return this; } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "this", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionThis.ts === +// function f(this: number) { +// return this; +// } +// <|class [|C|] { +// constructor() { return /*GOTO DEF*/this; } +// get self(this: number) { return this; } +// }|> + + // === Details === + [ + { + "kind": "parameter", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionThis.ts === +// function f(this: number) { +// return this; +// } +// class C { +// constructor() { return this; } +// get self(<|[|this|]: number|>) { return /*GOTO DEF*/this; } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "this", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypeOnlyImport.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypeOnlyImport.baseline.jsonc new file mode 100644 index 0000000000000..3f8a6ccb3d918 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypeOnlyImport.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /a.ts === +// <|enum [|SyntaxKind|] { SourceFile }|> +// export type { SyntaxKind } + +// === /c.ts === +// import type { SyntaxKind } from './b'; +// let kind: /*GOTO DEF*/[|SyntaxKind|]; + + // === Details === + [ + { + "kind": "enum", + "name": "SyntaxKind", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypePredicate.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypePredicate.baseline.jsonc new file mode 100644 index 0000000000000..0aafd1b623c38 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypePredicate.baseline.jsonc @@ -0,0 +1,41 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTypePredicate.ts === +// class A {} +// function f(<|[|parameter|]: any|>): /*GOTO DEF*/parameter is A { +// return typeof parameter === "string"; +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "parameter", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTypePredicate.ts === +// <|class [|A|] {}|> +// function f(parameter: any): parameter is /*GOTO DEF*/A { +// return typeof parameter === "string"; +// } + + // === Details === + [ + { + "kind": "class", + "name": "A", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypeReferenceDirective-pp.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypeReferenceDirective-pp.baseline.jsonc new file mode 100644 index 0000000000000..9415d35b6d799 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypeReferenceDirective-pp.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/shims-pp/src/types/lib/index.d.ts === +// [||]declare let $: {x: number}; + +// === /tests/cases/fourslash/shims-pp/src/app.ts === +// /// +// $.x; + + // === Details === + [ + { + "kind": "script", + "name": "lib", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypeReferenceDirective-shims.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypeReferenceDirective-shims.baseline.jsonc new file mode 100644 index 0000000000000..b3b6049069ff2 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypeReferenceDirective-shims.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/shims/src/types/lib/index.d.ts === +// [||]declare let $: {x: number}; + +// === /tests/cases/fourslash/shims/src/app.ts === +// /// +// $.x; + + // === Details === + [ + { + "kind": "script", + "name": "lib", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypeReferenceDirective.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypeReferenceDirective.baseline.jsonc new file mode 100644 index 0000000000000..402a80715d023 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypeReferenceDirective.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToDefinition === +// === /tests/cases/fourslash/src/types/lib/index.d.ts === +// [||]declare let $: {x: number}; + +// === /tests/cases/fourslash/src/app.ts === +// /// +// $.x; + + // === Details === + [ + { + "kind": "script", + "name": "lib", + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionTypeofThis.baseline.jsonc b/tests/baselines/reference/goToDefinitionTypeofThis.baseline.jsonc new file mode 100644 index 0000000000000..52f9b8cec9473 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionTypeofThis.baseline.jsonc @@ -0,0 +1,72 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTypeofThis.ts === +// function f(<|[|this|]: number|>) { +// type X = typeof /*GOTO DEF*/this; +// } +// class C { +// constructor() { type X = typeof this; } +// get self(this: number) { type X = typeof this; } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "this", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTypeofThis.ts === +// function f(this: number) { +// type X = typeof this; +// } +// <|class [|C|] { +// constructor() { type X = typeof /*GOTO DEF*/this; } +// get self(this: number) { type X = typeof this; } +// }|> + + // === Details === + [ + { + "kind": "parameter", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionTypeofThis.ts === +// function f(this: number) { +// type X = typeof this; +// } +// class C { +// constructor() { type X = typeof this; } +// get self(<|[|this|]: number|>) { type X = typeof /*GOTO DEF*/this; } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "this", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUndefinedSymbols.baseline.jsonc b/tests/baselines/reference/goToDefinitionUndefinedSymbols.baseline.jsonc new file mode 100644 index 0000000000000..b2c4b3d32baad --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUndefinedSymbols.baseline.jsonc @@ -0,0 +1,33 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts === +// some/*GOTO DEF*/Variable; +// var a: someType; +// var x = {}; x.someProperty; +// var a: any; a.someProperty; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts === +// someVariable; +// var a: some/*GOTO DEF*/Type; +// var x = {}; x.someProperty; +// var a: any; a.someProperty; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts === +// someVariable; +// var a: someType; +// var x = {}; x.some/*GOTO DEF*/Property; +// var a: any; a.someProperty; + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts === +// someVariable; +// var a: someType; +// var x = {}; x.someProperty; +// var a: any; a.some/*GOTO DEF*/Property; \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUnionTypeProperty1.baseline.jsonc b/tests/baselines/reference/goToDefinitionUnionTypeProperty1.baseline.jsonc new file mode 100644 index 0000000000000..947962e329aac --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUnionTypeProperty1.baseline.jsonc @@ -0,0 +1,40 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts === +// interface One { +// <|[|{| defId: 0 |}commonProperty|]: number;|> +// commonFunction(): number; +// } +// +// interface Two { +// <|[|{| defId: 1 |}commonProperty|]: string|> +// commonFunction(): number; +// } +// +// var x : One | Two; +// +// x./*GOTO DEF*/commonProperty; +// x.commonFunction; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "commonProperty", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "property", + "name": "commonProperty", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUnionTypeProperty2.baseline.jsonc b/tests/baselines/reference/goToDefinitionUnionTypeProperty2.baseline.jsonc new file mode 100644 index 0000000000000..a0fde2a39fa01 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUnionTypeProperty2.baseline.jsonc @@ -0,0 +1,42 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts === +// interface HasAOrB { +// <|[|{| defId: 1 |}a|]: string;|> +// b: string; +// } +// +// interface One { +// common: { <|[|{| defId: 0 |}a|] : number;|> }; +// } +// +// interface Two { +// common: HasAOrB; +// } +// +// var x : One | Two; +// +// x.common./*GOTO DEF*/a; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "property", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUnionTypeProperty3.baseline.jsonc b/tests/baselines/reference/goToDefinitionUnionTypeProperty3.baseline.jsonc new file mode 100644 index 0000000000000..dc82feb2ee61a --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUnionTypeProperty3.baseline.jsonc @@ -0,0 +1,23 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts === +// interface Array { +// <|[|specialPop|](): T|> +// } +// +// var strings: string[]; +// var numbers: number[]; +// +// var x = (strings || numbers)./*GOTO DEF*/specialPop() + + // === Details === + [ + { + "kind": "method", + "name": "specialPop", + "containerName": "Array", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUnionTypeProperty4.baseline.jsonc b/tests/baselines/reference/goToDefinitionUnionTypeProperty4.baseline.jsonc new file mode 100644 index 0000000000000..83d7a4f853031 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUnionTypeProperty4.baseline.jsonc @@ -0,0 +1,53 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts === +// interface SnapCrackle { +// <|[|{| defId: 0 |}pop|](): string;|> +// } +// +// interface Magnitude { +// <|[|{| defId: 1 |}pop|](): number;|> +// } +// +// interface Art { +// <|[|{| defId: 2 |}pop|](): boolean;|> +// } +// +// var art: Art; +// var magnitude: Magnitude; +// var snapcrackle: SnapCrackle; +// +// var x = (snapcrackle || magnitude || art)./*GOTO DEF*/pop; + + // === Details === + [ + { + "defId": 0, + "kind": "method", + "name": "pop", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "method", + "name": "pop", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "method", + "name": "pop", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionUnionTypeProperty_discriminated.baseline.jsonc b/tests/baselines/reference/goToDefinitionUnionTypeProperty_discriminated.baseline.jsonc new file mode 100644 index 0000000000000..104f51c3b93b7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionUnionTypeProperty_discriminated.baseline.jsonc @@ -0,0 +1,165 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts === +// type U = A | B; +// +// interface A { +// <|[|kind|]: "a";|> +// prop: number; +// }; +// +// interface B { +// kind: "b"; +// prop: string; +// } +// +// const u: U = { +// /*GOTO DEF*/kind: "a", +// prop: 0, +// }; +// const u2: U = { +// kind: "bogus", +// prop: 0, +// }; + + // === Details === + [ + { + "kind": "property", + "name": "kind", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts === +// type U = A | B; +// +// interface A { +// kind: "a"; +// <|[|prop|]: number;|> +// }; +// +// interface B { +// kind: "b"; +// prop: string; +// } +// +// const u: U = { +// kind: "a", +// /*GOTO DEF*/prop: 0, +// }; +// const u2: U = { +// kind: "bogus", +// prop: 0, +// }; + + // === Details === + [ + { + "kind": "property", + "name": "prop", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts === +// type U = A | B; +// +// interface A { +// <|[|{| defId: 0 |}kind|]: "a";|> +// prop: number; +// }; +// +// interface B { +// <|[|{| defId: 1 |}kind|]: "b";|> +// prop: string; +// } +// +// const u: U = { +// kind: "a", +// prop: 0, +// }; +// const u2: U = { +// /*GOTO DEF*/kind: "bogus", +// prop: 0, +// }; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "kind", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + }, + { + "defId": 1, + "kind": "property", + "name": "kind", + "containerName": "B", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts === +// type U = A | B; +// +// interface A { +// kind: "a"; +// <|[|{| defId: 0 |}prop|]: number;|> +// }; +// +// interface B { +// kind: "b"; +// <|[|{| defId: 1 |}prop|]: string;|> +// } +// +// const u: U = { +// kind: "a", +// prop: 0, +// }; +// const u2: U = { +// kind: "bogus", +// /*GOTO DEF*/prop: 0, +// }; + + // === Details === + [ + { + "defId": 0, + "kind": "property", + "name": "prop", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false + }, + { + "defId": 1, + "kind": "property", + "name": "prop", + "containerName": "B", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionVariableAssignment.baseline.jsonc b/tests/baselines/reference/goToDefinitionVariableAssignment.baseline.jsonc new file mode 100644 index 0000000000000..506f94ccbf3e7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionVariableAssignment.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.js === +// const Bar; +// const Foo = [|{| contextId: 0 |}Bar|] = <|function () {}|> +// Foo.prototype.bar = function() {} +// new Foo/*GOTO DEF*/(); + + // === Details === + [ + { + "kind": "local function", + "name": "Bar", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionVariableAssignment1.baseline.jsonc b/tests/baselines/reference/goToDefinitionVariableAssignment1.baseline.jsonc new file mode 100644 index 0000000000000..ed3f43ea54511 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionVariableAssignment1.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.js === +// const Foo = module.[|{| contextId: 0 |}exports|] = <|function () {}|> +// Foo.prototype.bar = function() {} +// new Foo/*GOTO DEF*/(); + + // === Details === + [ + { + "kind": "local function", + "name": "exports", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionVariableAssignment2.baseline.jsonc b/tests/baselines/reference/goToDefinitionVariableAssignment2.baseline.jsonc new file mode 100644 index 0000000000000..0fe5e196bc11c --- /dev/null +++ b/tests/baselines/reference/goToDefinitionVariableAssignment2.baseline.jsonc @@ -0,0 +1,19 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// const Bar; +// const Foo = [|{| contextId: 0 |}Bar|] = <|function () {}|> +// Foo.prototype.bar = function() {} +// new Foo/*GOTO DEF*/(); + + // === Details === + [ + { + "kind": "local function", + "name": "Bar", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionVariableAssignment3.baseline.jsonc b/tests/baselines/reference/goToDefinitionVariableAssignment3.baseline.jsonc new file mode 100644 index 0000000000000..3e479132e5456 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionVariableAssignment3.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// const Foo = module.[|{| contextId: 0 |}exports|] = <|function () {}|> +// Foo.prototype.bar = function() {} +// new Foo/*GOTO DEF*/(); + + // === Details === + [ + { + "kind": "local function", + "name": "exports", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionYield1.baseline.jsonc b/tests/baselines/reference/goToDefinitionYield1.baseline.jsonc new file mode 100644 index 0000000000000..0fda10f42b0e7 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionYield1.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield1.ts === +// <|function* [|gen|]() { +// /*GOTO DEF*/yield 0; +// }|> +// +// const genFunction = function*() { +// yield 0; +// } + + // === Details === + [ + { + "kind": "function", + "name": "gen", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield1.ts === +// function* gen() { +// yield 0; +// } +// +// const [|{| contextId: 0 |}genFunction|] = <|function*() { +// /*GOTO DEF*/yield 0; +// }|> + + // === Details === + [ + { + "kind": "local function", + "name": "genFunction", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionYield2.baseline.jsonc b/tests/baselines/reference/goToDefinitionYield2.baseline.jsonc new file mode 100644 index 0000000000000..e2c32fe16eba4 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionYield2.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield2.ts === +// function* outerGen() { +// <|function* [|gen|]() { +// /*GOTO DEF*/yield 0; +// }|> +// return gen +// } + + // === Details === + [ + { + "kind": "local function", + "name": "gen", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionYield3.baseline.jsonc b/tests/baselines/reference/goToDefinitionYield3.baseline.jsonc new file mode 100644 index 0000000000000..0c42700d27f76 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionYield3.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield3.ts === +// class C { +// notAGenerator() { +// /*GOTO DEF*/yield 0; +// } +// +// foo*() { +// yield 0; +// } +// } + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield3.ts === +// class C { +// notAGenerator() { +// yield 0; +// } +// +// foo<|*[||]() { +// /*GOTO DEF*/yield 0; +// }|> +// } + + // === Details === + [ + { + "kind": "method", + "name": "(Missing)", + "containerName": "C", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinitionYield4.baseline.jsonc b/tests/baselines/reference/goToDefinitionYield4.baseline.jsonc new file mode 100644 index 0000000000000..28af052f964f8 --- /dev/null +++ b/tests/baselines/reference/goToDefinitionYield4.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinitionYield4.ts === +// function* gen() { +// class C { [/*GOTO DEF*/yield 10]() {} } +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinition_filteringGenericMappedType.baseline.jsonc b/tests/baselines/reference/goToDefinition_filteringGenericMappedType.baseline.jsonc new file mode 100644 index 0000000000000..eb95d9f403e4f --- /dev/null +++ b/tests/baselines/reference/goToDefinition_filteringGenericMappedType.baseline.jsonc @@ -0,0 +1,36 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_filteringGenericMappedType.ts === +// const obj = { +// <|get [|id|]() { +// return 1; +// }|>, +// name: "test", +// }; +// +// type Omit2 = { +// [K in keyof T as Exclude]: T[K]; +// }; +// +// declare function omit2( +// obj: O, +// mask: Mask +// ): Omit2; +// +// const obj2 = omit2(obj, { +// name: true, +// }); +// +// obj2./*GOTO DEF*/id; + + // === Details === + [ + { + "kind": "property", + "name": "id", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinition_filteringMappedType.baseline.jsonc b/tests/baselines/reference/goToDefinition_filteringMappedType.baseline.jsonc new file mode 100644 index 0000000000000..38d3864efd135 --- /dev/null +++ b/tests/baselines/reference/goToDefinition_filteringMappedType.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_filteringMappedType.ts === +// const obj = { <|[|a|]: 1|>, b: 2 }; +// const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { a: 0 }; +// filtered./*GOTO DEF*/a; + + // === Details === + [ + { + "kind": "property", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinition_mappedType.baseline.jsonc b/tests/baselines/reference/goToDefinition_mappedType.baseline.jsonc new file mode 100644 index 0000000000000..e8ad642b0a5f9 --- /dev/null +++ b/tests/baselines/reference/goToDefinition_mappedType.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_mappedType.ts === +// interface I { <|[|m|](): void;|> }; +// declare const i: { [K in "m"]: I[K] }; +// i./*GOTO DEF*/m(); + + // === Details === + [ + { + "kind": "method", + "name": "m", + "containerName": "I", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinition_super.baseline.jsonc b/tests/baselines/reference/goToDefinition_super.baseline.jsonc new file mode 100644 index 0000000000000..19f5c5b1494c4 --- /dev/null +++ b/tests/baselines/reference/goToDefinition_super.baseline.jsonc @@ -0,0 +1,103 @@ +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_super.ts === +// class A { +// [|{| defId: 0 |}constructor() {}|] +// x() {} +// } +// <|class [|{| defId: 1 |}B|] extends A {}|> +// class C extends B { +// constructor() { +// /*GOTO DEF*/super(); +// } +// method() { +// super.x(); +// } +// } +// class D { +// constructor() { +// super(); +// } +// } + + // === Details === + [ + { + "defId": 0, + "kind": "constructor", + "name": "__constructor", + "containerName": "A", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "class", + "name": "B", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_super.ts === +// class A { +// constructor() {} +// x() {} +// } +// <|class [|B|] extends A {}|> +// class C extends B { +// constructor() { +// super(); +// } +// method() { +// /*GOTO DEF*/super.x(); +// } +// } +// class D { +// constructor() { +// super(); +// } +// } + + // === Details === + [ + { + "kind": "class", + "name": "B", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/goToDefinition_super.ts === +// class A { +// constructor() {} +// x() {} +// } +// class B extends A {} +// class C extends B { +// constructor() { +// super(); +// } +// method() { +// super.x(); +// } +// } +// class D { +// constructor() { +// /*GOTO DEF*/super(); +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/goToDefinition_untypedModule.baseline.jsonc b/tests/baselines/reference/goToDefinition_untypedModule.baseline.jsonc new file mode 100644 index 0000000000000..d48162981ba6f --- /dev/null +++ b/tests/baselines/reference/goToDefinition_untypedModule.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToDefinition === +// === /a.ts === +// <|import { [|f|] } from "foo";|> +// /*GOTO DEF*/f(); + + // === Details === + [ + { + "kind": "alias", + "name": "f", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationClassMethod_00.baseline.jsonc b/tests/baselines/reference/goToImplementationClassMethod_00.baseline.jsonc new file mode 100644 index 0000000000000..99081ea0f0353 --- /dev/null +++ b/tests/baselines/reference/goToImplementationClassMethod_00.baseline.jsonc @@ -0,0 +1,64 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationClassMethod_00.ts === +// class Bar { +// <|[|hello|]() {}|> +// } +// +// new Bar().hel/*GOTO IMPL*/lo; + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationClassMethod_01.baseline.jsonc b/tests/baselines/reference/goToImplementationClassMethod_01.baseline.jsonc new file mode 100644 index 0000000000000..f80b2fb496244 --- /dev/null +++ b/tests/baselines/reference/goToImplementationClassMethod_01.baseline.jsonc @@ -0,0 +1,143 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationClassMethod_01.ts === +// abstract class AbstractBar { +// abstract hello(): void; +// } +// +// class Bar extends AbstractBar{ +// <|[|hello|]() {}|> +// } +// +// function whatever(x: AbstractBar) { +// x.he/*GOTO IMPL*/llo(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationClassMethod_01.ts === +// abstract class AbstractBar { +// abstract he/*GOTO IMPL*/llo(): void; +// } +// +// class Bar extends AbstractBar{ +// <|[|hello|]() {}|> +// } +// +// function whatever(x: AbstractBar) { +// x.hello(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationEnum_00.baseline.jsonc b/tests/baselines/reference/goToImplementationEnum_00.baseline.jsonc new file mode 100644 index 0000000000000..ce486b1ab7fc6 --- /dev/null +++ b/tests/baselines/reference/goToImplementationEnum_00.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationEnum_00.ts === +// enum Foo { +// <|[|Foo1|] = function initializer() { return 5 } ()|>, +// Foo2 = 6 +// } +// +// Foo.Fo/*GOTO IMPL*/o1; + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo1", + "kind": "enumMemberName" + } + ], + "kind": "enum member" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationEnum_01.baseline.jsonc b/tests/baselines/reference/goToImplementationEnum_01.baseline.jsonc new file mode 100644 index 0000000000000..7dbf0c3c19698 --- /dev/null +++ b/tests/baselines/reference/goToImplementationEnum_01.baseline.jsonc @@ -0,0 +1,29 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationEnum_01.ts === +// <|enum [|Foo|] { +// Foo1 = function initializer() { return 5 } (), +// Foo2 = 6 +// }|> +// +// Fo/*GOTO IMPL*/o; + + // === Details === + [ + { + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "enumName" + } + ], + "kind": "enum" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_00.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_00.baseline.jsonc new file mode 100644 index 0000000000000..c541057733f15 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_00.baseline.jsonc @@ -0,0 +1,559 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts === +// interface Foo { +// hello: () => void +// } +// +// var bar: Foo = { <|[|{| defId: 0 |}hello|]: helloImpl|> }; +// var baz: Foo = { <|"[|{| defId: 1 |}hello|]": helloImpl|> }; +// +// function helloImpl () {} +// +// function whatever(x: Foo = { <|[|{| defId: 2 |}hello|]() {/**1*/}|> }) { +// x.he/*GOTO IMPL*/llo() +// } +// +// class Bar { +// x: Foo = { <|[|{| defId: 3 |}hello|]() {}|> } +// +// constructor(public f: Foo = { <|[|{| defId: 4 |}hello|]() {/**3*/}|> } ) {} +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"hello\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 3, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 4, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts === +// interface Foo { +// he/*GOTO IMPL*/llo: () => void +// } +// +// var bar: Foo = { <|[|{| defId: 0 |}hello|]: helloImpl|> }; +// var baz: Foo = { <|"[|{| defId: 1 |}hello|]": helloImpl|> }; +// +// function helloImpl () {} +// +// function whatever(x: Foo = { <|[|{| defId: 2 |}hello|]() {/**1*/}|> }) { +// x.hello() +// } +// +// class Bar { +// x: Foo = { <|[|{| defId: 3 |}hello|]() {}|> } +// +// constructor(public f: Foo = { <|[|{| defId: 4 |}hello|]() {/**3*/}|> } ) {} +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"hello\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 3, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 4, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_01.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_01.baseline.jsonc new file mode 100644 index 0000000000000..e6ae40f1db08c --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_01.baseline.jsonc @@ -0,0 +1,151 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts === +// interface Foo { +// hello(): void; +// okay?: number; +// } +// +// class Bar implements Foo { +// <|[|hello|]() {}|> +// public sure() {} +// } +// +// function whatever(a: Foo) { +// a.he/*GOTO IMPL*/llo(); +// } +// +// whatever(new Bar()); + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts === +// interface Foo { +// hel/*GOTO IMPL*/lo(): void; +// okay?: number; +// } +// +// class Bar implements Foo { +// <|[|hello|]() {}|> +// public sure() {} +// } +// +// function whatever(a: Foo) { +// a.hello(); +// } +// +// whatever(new Bar()); + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_02.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_02.baseline.jsonc new file mode 100644 index 0000000000000..d9d1a1e6f758d --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_02.baseline.jsonc @@ -0,0 +1,151 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts === +// interface Foo { +// hello(): void +// } +// +// abstract class AbstractBar implements Foo { +// abstract hello(): void; +// } +// +// class Bar extends AbstractBar { +// <|[|hello|]() {}|> +// } +// +// function whatever(a: AbstractBar) { +// a.he/*GOTO IMPL*/llo(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts === +// interface Foo { +// he/*GOTO IMPL*/llo(): void +// } +// +// abstract class AbstractBar implements Foo { +// abstract hello(): void; +// } +// +// class Bar extends AbstractBar { +// <|[|hello|]() {}|> +// } +// +// function whatever(a: AbstractBar) { +// a.hello(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_03.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_03.baseline.jsonc new file mode 100644 index 0000000000000..fa9e3dcbe9312 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_03.baseline.jsonc @@ -0,0 +1,77 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_03.ts === +// interface Foo { +// hello (): void; +// } +// +// class Bar extends SuperBar { +// <|[|hello|]() {}|> +// } +// +// class SuperBar implements Foo { +// hello() {} // should not show up +// } +// +// class OtherBar implements Foo { +// hello() {} // should not show up +// } +// +// new Bar().hel/*GOTO IMPL*/lo(); +// new Bar()["hello"](); + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_04.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_04.baseline.jsonc new file mode 100644 index 0000000000000..a04a478198590 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_04.baseline.jsonc @@ -0,0 +1,133 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_04.ts === +// interface Foo { +// hello (): void; +// } +// +// class Bar extends SuperBar { +// <|[|{| defId: 0 |}hello|]() {}|> +// } +// +// class SuperBar implements Foo { +// <|[|{| defId: 1 |}hello|]() {}|> +// } +// +// class OtherBar implements Foo { +// hello() {} // should not show up +// } +// +// function (x: SuperBar) { +// x.he/*GOTO IMPL*/llo() +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_05.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_05.baseline.jsonc new file mode 100644 index 0000000000000..e056b5bb54449 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_05.baseline.jsonc @@ -0,0 +1,90 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_05.ts === +// interface Foo { +// hello (): void; +// } +// +// class SuperBar implements Foo { +// <|[|hello|]() {}|> +// } +// +// class Bar extends SuperBar { +// hello2() {} +// } +// +// class OtherBar extends SuperBar { +// hello() {} +// hello2() {} +// hello3() {} +// } +// +// class NotRelatedToBar { +// hello() {} // Equivalent to last case, but shares no common ancestors with Bar and so is not returned +// hello2() {} +// hello3() {} +// } +// +// class NotBar extends SuperBar { +// hello() {} // Should not be returned because it is not structurally equivalent to Bar +// } +// +// function whatever(x: Bar) { +// x.he/*GOTO IMPL*/llo() +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_06.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_06.baseline.jsonc new file mode 100644 index 0000000000000..ed8be40bc4973 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_06.baseline.jsonc @@ -0,0 +1,194 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_06.ts === +// interface SuperFoo { +// hello (): void; +// } +// +// interface Foo extends SuperFoo { +// someOtherFunction(): void; +// } +// +// class Bar implements Foo { +// <|[|{| defId: 2 |}hello|]() {}|> +// someOtherFunction() {} +// } +// +// function createFoo(): Foo { +// return { +// <|[|{| defId: 0 |}hello|]() {}|>, +// someOtherFunction() {} +// }; +// } +// +// var y: Foo = { +// <|[|{| defId: 1 |}hello|]() {}|>, +// someOtherFunction() {} +// }; +// +// class FooLike implements SuperFoo { +// hello() {} +// someOtherFunction() {} +// } +// +// class NotRelatedToFoo { +// hello() {} // This case is equivalent to the last case, but is not returned because it does not share a common ancestor with Foo +// someOtherFunction() {} +// } +// +// class NotFoo implements SuperFoo { +// hello() {} // We only want implementations of Foo, even though the function is declared in SuperFoo +// } +// +// function (x: Foo) { +// x.he/*GOTO IMPL*/llo() +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_08.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_08.baseline.jsonc new file mode 100644 index 0000000000000..0caa999ad7d78 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_08.baseline.jsonc @@ -0,0 +1,129 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_08.ts === +// interface Foo { +// hello (): void; +// } +// +// class SuperBar implements Foo { +// <|[|{| defId: 0 |}hello|]() {}|> +// } +// +// class Bar extends SuperBar { +// whatever() { this.he/*GOTO IMPL*/llo(); } +// } +// +// class SubBar extends Bar { +// <|[|{| defId: 1 |}hello|]() {}|> +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SubBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_09.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_09.baseline.jsonc new file mode 100644 index 0000000000000..089b32e6a74cf --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_09.baseline.jsonc @@ -0,0 +1,169 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts === +// interface Foo { +// hello (): void; +// } +// +// class SubBar extends Bar { +// hello() {} +// } +// +// class Bar extends SuperBar { +// hello() {} +// +// whatever() { +// super.he/*GOTO IMPL*/llo(); +// super["hello"](); +// } +// } +// +// class SuperBar extends MegaBar { +// <|[|hello|]() {}|> +// } +// +// class MegaBar implements Foo { +// hello() {} +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts === +// interface Foo { +// hello (): void; +// } +// +// class SubBar extends Bar { +// hello() {} +// } +// +// class Bar extends SuperBar { +// hello() {} +// +// whatever() { +// super.hello(); +// super["hel/*GOTO IMPL*/lo"](); +// } +// } +// +// class SuperBar extends MegaBar { +// <|[|hello|]() {}|> +// } +// +// class MegaBar implements Foo { +// hello() {} +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_10.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_10.baseline.jsonc new file mode 100644 index 0000000000000..16799eaea3a42 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_10.baseline.jsonc @@ -0,0 +1,419 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts === +// interface BaseFoo { +// hello(): void; +// } +// +// interface Foo extends BaseFoo { +// aloha(): void; +// } +// +// interface Bar { +// hello(): void; +// goodbye(): void; +// } +// +// class FooImpl implements Foo { +// <|[|{| defId: 0 |}hello|]() {/**FooImpl*/}|> +// aloha() {} +// } +// +// class BaseFooImpl implements BaseFoo { +// hello() {/**BaseFooImpl*/} // Should not show up +// } +// +// class BarImpl implements Bar { +// <|[|{| defId: 1 |}hello|]() {/**BarImpl*/}|> +// goodbye() {} +// } +// +// class FooAndBarImpl implements Foo, Bar { +// <|[|{| defId: 2 |}hello|]() {/**FooAndBarImpl*/}|> +// aloha() {} +// goodbye() {} +// } +// +// function someFunction(x: Foo | Bar) { +// x.he/*GOTO IMPL*/llo(); +// } +// +// function anotherFunction(x: Foo & Bar) { +// x.hello(); +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BarImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooAndBarImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts === +// interface BaseFoo { +// hello(): void; +// } +// +// interface Foo extends BaseFoo { +// aloha(): void; +// } +// +// interface Bar { +// hello(): void; +// goodbye(): void; +// } +// +// class FooImpl implements Foo { +// <|[|{| defId: 0 |}hello|]() {/**FooImpl*/}|> +// aloha() {} +// } +// +// class BaseFooImpl implements BaseFoo { +// hello() {/**BaseFooImpl*/} // Should not show up +// } +// +// class BarImpl implements Bar { +// <|[|{| defId: 1 |}hello|]() {/**BarImpl*/}|> +// goodbye() {} +// } +// +// class FooAndBarImpl implements Foo, Bar { +// <|[|{| defId: 2 |}hello|]() {/**FooAndBarImpl*/}|> +// aloha() {} +// goodbye() {} +// } +// +// function someFunction(x: Foo | Bar) { +// x.hello(); +// } +// +// function anotherFunction(x: Foo & Bar) { +// x.he/*GOTO IMPL*/llo(); +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BarImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FooAndBarImpl", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceMethod_11.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceMethod_11.baseline.jsonc new file mode 100644 index 0000000000000..457619918e1b8 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceMethod_11.baseline.jsonc @@ -0,0 +1,128 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceMethod_11.ts === +// interface Foo { +// hel/*GOTO IMPL*/lo(): void; +// } +// +// var x = { <|[|{| defId: 0 |}hello|]: () => {}|> }; +// var y = (((({ <|[|{| defId: 1 |}hello|]: () => {}|> })))); + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceProperty_00.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceProperty_00.baseline.jsonc new file mode 100644 index 0000000000000..62329f60846a3 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceProperty_00.baseline.jsonc @@ -0,0 +1,174 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceProperty_00.ts === +// interface Foo { +// hello: number +// } +// +// var bar: Foo = { <|[|{| defId: 0 |}hello|]: 5|> }; +// +// +// function whatever(x: Foo = { <|[|{| defId: 1 |}hello|]: 5 * 9|> }) { +// x.he/*GOTO IMPL*/llo +// } +// +// class Bar { +// x: Foo = { <|[|{| defId: 2 |}hello|]: 6|> } +// +// constructor(public f: Foo = { <|[|{| defId: 3 |}hello|]: 7|> } ) {} +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "kind": "property" + }, + { + "defId": 3, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "kind": "property" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterfaceProperty_01.baseline.jsonc b/tests/baselines/reference/goToImplementationInterfaceProperty_01.baseline.jsonc new file mode 100644 index 0000000000000..f1d64218b9a23 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterfaceProperty_01.baseline.jsonc @@ -0,0 +1,60 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterfaceProperty_01.ts === +// interface Foo { hello: number } +// +// class Bar implements Foo { +// <|[|hello|] = 5 * 9;|> +// } +// +// function whatever(foo: Foo) { +// foo.he/*GOTO IMPL*/llo; +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "kind": "property" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_00.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_00.baseline.jsonc new file mode 100644 index 0000000000000..32215cfece30b --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_00.baseline.jsonc @@ -0,0 +1,102 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_00.ts === +// interface Fo/*GOTO IMPL*/o { +// hello: () => void +// } +// +// interface Baz extends Foo {} +// +// var bar: Foo = [|{| defId: 0 |}{ hello: helloImpl /**0*/ }|]; +// var baz: Foo[] = [|{| defId: 1 |}[{ hello: helloImpl /**4*/ }]|]; +// +// function helloImpl () {} +// +// function whatever(x: Foo = [|{| defId: 2 |}{ hello() {/**1*/} }|] ) { +// } +// +// class Bar { +// x: Foo = [|{| defId: 3 |}{ hello() {} }|] +// +// constructor(public f: Foo = [|{| defId: 4 |}{ hello() {/**3*/} }|] ) {} +// } + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 1, + "kind": "", + "displayParts": [] + }, + { + "defId": 2, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 3, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 4, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_01.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_01.baseline.jsonc new file mode 100644 index 0000000000000..1290e378f6c1d --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_01.baseline.jsonc @@ -0,0 +1,98 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_01.ts === +// interface Fo/*GOTO IMPL*/o { hello(): void } +// +// <|class [|{| defId: 0 |}SuperBar|] implements Foo { +// hello () {} +// }|> +// +// <|abstract class [|{| defId: 1 |}AbstractBar|] implements Foo { +// abstract hello (): void; +// }|> +// +// <|class [|{| defId: 2 |}Bar|] extends SuperBar { +// }|> +// +// <|class [|{| defId: 3 |}NotAbstractBar|] extends AbstractBar { +// hello () {} +// }|> +// +// var x = new SuperBar(); +// var y: SuperBar = new SuperBar(); +// var z: AbstractBar = new NotAbstractBar(); + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SuperBar", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "AbstractBar", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 2, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 3, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NotAbstractBar", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_02.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_02.baseline.jsonc new file mode 100644 index 0000000000000..738e60c540331 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_02.baseline.jsonc @@ -0,0 +1,69 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_02.ts === +// interface Fo/*GOTO IMPL*/o { hello: () => void } +// +// let x: number = 9; +// +// function createFoo(): Foo { +// if (x === 2) { +// return [|{| defId: 0 |}{ +// hello() {} +// }|]; +// } +// return [|{| defId: 1 |}{ +// hello() {} +// }|]; +// } +// +// let createFoo2 = (): Foo => [|{| defId: 2 |}({hello() {}})|]; +// +// function createFooLike() { +// return { +// hello() {} +// }; +// } + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 1, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 2, + "kind": "", + "displayParts": [] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_03.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_03.baseline.jsonc new file mode 100644 index 0000000000000..c1e06999e4350 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_03.baseline.jsonc @@ -0,0 +1,26 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_03.ts === +// interface Fo/*GOTO IMPL*/o { hello: () => void } +// +// var x = [|{ hello: () => {} }|]; + + // === Details === + [ + { + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_04.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_04.baseline.jsonc new file mode 100644 index 0000000000000..8260df0d4c6be --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_04.baseline.jsonc @@ -0,0 +1,40 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_04.ts === +// interface Fo/*GOTO IMPL*/o { +// (a: number): void +// } +// +// var bar: Foo = [|{| defId: 0 |}(a) => {/**0*/}|]; +// +// function whatever(x: Foo = [|{| defId: 1 |}(a) => {/**1*/}|] ) { +// } +// +// class Bar { +// x: Foo = [|{| defId: 2 |}(a) => {/**2*/}|] +// +// constructor(public f: Foo = [|{| defId: 3 |}function(a) {}|] ) {} +// } + + // === Details === + [ + { + "defId": 0, + "kind": "function", + "displayParts": [] + }, + { + "defId": 1, + "kind": "function", + "displayParts": [] + }, + { + "defId": 2, + "kind": "function", + "displayParts": [] + }, + { + "defId": 3, + "kind": "function", + "displayParts": [] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_05.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_05.baseline.jsonc new file mode 100644 index 0000000000000..93c8df8a6796e --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_05.baseline.jsonc @@ -0,0 +1,16 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_05.ts === +// interface Fo/*GOTO IMPL*/o { +// (a: number): void +// } +// +// let bar2 = [|function(a) {}|]; +// + + // === Details === + [ + { + "kind": "function", + "displayParts": [] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_06.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_06.baseline.jsonc new file mode 100644 index 0000000000000..c6a92203faa5d --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_06.baseline.jsonc @@ -0,0 +1,50 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_06.ts === +// interface Fo/*GOTO IMPL*/o { +// new (a: number): SomeOtherType; +// } +// +// interface SomeOtherType {} +// +// let x: Foo = [|{| defId: 0 |}class { constructor (a: number) {} }|]; +// let y = [|{| defId: 1 |}class { constructor (a: number) {} }|]; + + // === Details === + [ + { + "defId": 0, + "kind": "local class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "anonymous local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 1, + "kind": "local class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "anonymous local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_07.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_07.baseline.jsonc new file mode 100644 index 0000000000000..11143df96289d --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_07.baseline.jsonc @@ -0,0 +1,197 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_07.ts === +// interface Fo/*GOTO IMPL*/o { +// hello (): void; +// } +// +// interface Bar { +// hello (): void; +// } +// +// let x1: Foo = [|{| defId: 0 |}{ hello () { /**typeReference*/ } }|]; +// let x2: () => Foo = [|{| defId: 1 |}(() => { hello () { /**functionType*/} })|]; +// let x3: Foo | Bar = [|{| defId: 2 |}{ hello () { /**unionType*/} }|]; +// let x4: Foo & (Foo & Bar) = [|{| defId: 3 |}{ hello () { /**intersectionType*/} }|]; +// let x5: [Foo] = [|{| defId: 4 |}[{ hello () { /**tupleType*/} }]|]; +// let x6: (Foo) = [|{| defId: 5 |}{ hello () { /**parenthesizedType*/} }|]; +// let x7: (new() => Foo) = [|{| defId: 6 |}class { hello () { /**constructorType*/} }|]; +// let x8: Foo[] = [|{| defId: 7 |}[{ hello () { /**arrayType*/} }]|]; +// let x9: { y: Foo } = [|{| defId: 8 |}{ y: { hello () { /**typeLiteral*/} } }|]; +// let x10 = [|{| defId: 9 |}class implements Foo { hello() {} }|] +// let x11 = <|class [|{| defId: 10 |}C|] implements Foo { hello() {} }|> +// +// // Should not do anything for type predicates +// function isFoo(a: any): a is Foo { +// return true; +// } + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 1, + "kind": "", + "displayParts": [] + }, + { + "defId": 2, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 3, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 4, + "kind": "", + "displayParts": [] + }, + { + "defId": 5, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 6, + "kind": "local class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "anonymous local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 7, + "kind": "", + "displayParts": [] + }, + { + "defId": 8, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 9, + "kind": "local class", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "anonymous local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 10, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } + ], + "kind": "local class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_08.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_08.baseline.jsonc new file mode 100644 index 0000000000000..80f5688c3e9ff --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_08.baseline.jsonc @@ -0,0 +1,74 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInterface_08.ts === +// interface Base { +// hello (): void; +// } +// +// interface A extends Base {} +// interface B extends C, A {} +// interface C extends B, A {} +// +// class X implements B { +// <|[|hello|]() {}|> +// } +// +// function someFunction(d : A) { +// d.he/*GOTO IMPL*/llo(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "X", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "method" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInterface_09.baseline.jsonc b/tests/baselines/reference/goToImplementationInterface_09.baseline.jsonc new file mode 100644 index 0000000000000..d0dda53d00aa0 --- /dev/null +++ b/tests/baselines/reference/goToImplementationInterface_09.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToImplementation === +// === /tests/cases/fourslash/ref.ts === +// import { Interface } from "./def"; +// const c: I/*GOTO IMPL*/nterface = [|{ P: 2 }|]; + + // === Details === + [ + { + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationInvalid.baseline.jsonc b/tests/baselines/reference/goToImplementationInvalid.baseline.jsonc new file mode 100644 index 0000000000000..eb910d0639c1a --- /dev/null +++ b/tests/baselines/reference/goToImplementationInvalid.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInvalid.ts === +// var x1 = 50/*GOTO IMPL*/0; +// var x2 = "hello"; +// + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInvalid.ts === +// var x1 = 500; +// var x2 = "hel/*GOTO IMPL*/lo"; +// + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationInvalid.ts === +// var x1 = 500; +// var x2 = "hello"; +// /*GOTO IMPL*/ \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_00.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_00.baseline.jsonc new file mode 100644 index 0000000000000..ede037c1df1c0 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_00.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_00.ts === +// he/*GOTO IMPL*/llo(); +// <|function [|hello|]() {}|> + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_01.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_01.baseline.jsonc new file mode 100644 index 0000000000000..8013e35455123 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_01.baseline.jsonc @@ -0,0 +1,57 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_01.ts === +// <|const [|hello|] = function() {};|> +// he/*GOTO IMPL*/llo(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "const" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_02.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_02.baseline.jsonc new file mode 100644 index 0000000000000..e30ce23598ba2 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_02.baseline.jsonc @@ -0,0 +1,67 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_02.ts === +// const x = { <|[|hello|]: () => {}|> }; +// +// x.he/*GOTO IMPL*/llo(); +// + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "property" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_03.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_03.baseline.jsonc new file mode 100644 index 0000000000000..2b56ca5bca94c --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_03.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_03.ts === +// <|let [|he/*GOTO IMPL*/llo|] = {};|> +// +// x.hello(); +// +// hello = {}; +// + + // === Details === + [ + { + "displayParts": [ + { + "text": "let", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "kind": "let" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_04.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_04.baseline.jsonc new file mode 100644 index 0000000000000..3d69021ad4ed5 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_04.baseline.jsonc @@ -0,0 +1,47 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_04.ts === +// <|function [|he/*GOTO IMPL*/llo|]() {}|> +// +// hello(); +// + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_05.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_05.baseline.jsonc new file mode 100644 index 0000000000000..3af0fca5a0e9f --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_05.baseline.jsonc @@ -0,0 +1,41 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_05.ts === +// class Bar { +// public hello() {} +// } +// +// <|var [|someVar|] = new Bar();|> +// someVa/*GOTO IMPL*/r.hello(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "someVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "var" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_06.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_06.baseline.jsonc new file mode 100644 index 0000000000000..c2c510f544eb3 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_06.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_06.ts === +// <|declare var [|someVar|]: string;|> +// someVa/*GOTO IMPL*/r + + // === Details === + [ + { + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "someVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "kind": "var" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_07.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_07.baseline.jsonc new file mode 100644 index 0000000000000..1bfffbefd5e39 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_07.baseline.jsonc @@ -0,0 +1,65 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_07.ts === +// <|declare function [|someFunction|](): () => void;|> +// someFun/*GOTO IMPL*/ction(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "someFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationLocal_08.baseline.jsonc b/tests/baselines/reference/goToImplementationLocal_08.baseline.jsonc new file mode 100644 index 0000000000000..b64912b2ea273 --- /dev/null +++ b/tests/baselines/reference/goToImplementationLocal_08.baseline.jsonc @@ -0,0 +1,65 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationLocal_08.ts === +// <|declare function [|someFunction|](): () => void;|> +// someFun/*GOTO IMPL*/ction(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "someFunction", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_00.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_00.baseline.jsonc new file mode 100644 index 0000000000000..6d6a687c808fc --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_00.baseline.jsonc @@ -0,0 +1,69 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_00.ts === +// <|namespace [|Foo|] { +// export function hello() {} +// }|> +// +// module Bar { +// export function sure() {} +// } +// +// let x = Fo/*GOTO IMPL*/o; +// let y = Bar; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_00.ts === +// namespace Foo { +// export function hello() {} +// } +// +// <|module [|Bar|] { +// export function sure() {} +// }|> +// +// let x = Foo; +// let y = Ba/*GOTO IMPL*/r; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_01.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_01.baseline.jsonc new file mode 100644 index 0000000000000..74e7e4f9a737b --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_01.baseline.jsonc @@ -0,0 +1,56 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_01.ts === +// namespace Foo { +// <|export function [|hello|]() {}|> +// } +// +// Foo.hell/*GOTO IMPL*/o(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_02.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_02.baseline.jsonc new file mode 100644 index 0000000000000..d62ac1ea432fc --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_02.baseline.jsonc @@ -0,0 +1,56 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_02.ts === +// module Foo { +// <|export function [|hello|]() {}|> +// } +// +// Foo.hell/*GOTO IMPL*/o(); + + // === Details === + [ + { + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_03.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_03.baseline.jsonc new file mode 100644 index 0000000000000..ce895f7b63dda --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_03.baseline.jsonc @@ -0,0 +1,99 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_03.ts === +// namespace Foo { +// export interface Bar { +// hello(): void; +// } +// +// <|class [|{| defId: 0 |}BarImpl|] implements Bar { +// hello() {} +// }|> +// } +// +// <|class [|{| defId: 1 |}Baz|] implements Foo.Bar { +// hello() {} +// }|> +// +// var someVar1 : Foo.Bar = [|{| defId: 2 |}{ hello: () => {/**1*/} }|]; +// +// var someVar2 = [|{| defId: 3 |}{ hello: () => {/**2*/} }|]; +// +// function whatever(x: Foo.Ba/*GOTO IMPL*/r) { +// +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BarImpl", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Baz", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 2, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 3, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_04.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_04.baseline.jsonc new file mode 100644 index 0000000000000..6a4b0f015ce26 --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_04.baseline.jsonc @@ -0,0 +1,99 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_04.ts === +// module Foo { +// export interface Bar { +// hello(): void; +// } +// +// <|class [|{| defId: 0 |}BarImpl|] implements Bar { +// hello() {} +// }|> +// } +// +// <|class [|{| defId: 1 |}Baz|] implements Foo.Bar { +// hello() {} +// }|> +// +// var someVar1 : Foo.Bar = [|{| defId: 2 |}{ hello: () => {/**1*/} }|]; +// +// var someVar2 = [|{| defId: 3 |}{ hello: () => {/**2*/} }|]; +// +// function whatever(x: Foo.Ba/*GOTO IMPL*/r) { +// +// } + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BarImpl", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Baz", + "kind": "className" + } + ], + "kind": "class" + }, + { + "defId": 2, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + }, + { + "defId": 3, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_05.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_05.baseline.jsonc new file mode 100644 index 0000000000000..a0a59cb69cf32 --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_05.baseline.jsonc @@ -0,0 +1,165 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_05.ts === +// <|namespace [|Foo|].Baz { +// export function hello() {} +// }|> +// +// module Bar.Baz { +// export function sure() {} +// } +// +// let x = Fo/*GOTO IMPL*/o; +// let y = Bar; +// let x1 = Foo.Baz; +// let y1 = Bar.Baz; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_05.ts === +// namespace Foo.Baz { +// export function hello() {} +// } +// +// <|module [|Bar|].Baz { +// export function sure() {} +// }|> +// +// let x = Foo; +// let y = Ba/*GOTO IMPL*/r; +// let x1 = Foo.Baz; +// let y1 = Bar.Baz; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_05.ts === +// namespace Foo.<|[|Baz|] { +// export function hello() {} +// }|> +// +// module Bar.Baz { +// export function sure() {} +// } +// +// let x = Foo; +// let y = Bar; +// let x1 = Foo.B/*GOTO IMPL*/az; +// let y1 = Bar.Baz; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Baz", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_05.ts === +// namespace Foo.Baz { +// export function hello() {} +// } +// +// module Bar.<|[|Baz|] { +// export function sure() {} +// }|> +// +// let x = Foo; +// let y = Bar; +// let x1 = Foo.Baz; +// let y1 = Bar.B/*GOTO IMPL*/az; + + // === Details === + [ + { + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Baz", + "kind": "moduleName" + } + ], + "kind": "module" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationNamespace_06.baseline.jsonc b/tests/baselines/reference/goToImplementationNamespace_06.baseline.jsonc new file mode 100644 index 0000000000000..4998060ba6e6a --- /dev/null +++ b/tests/baselines/reference/goToImplementationNamespace_06.baseline.jsonc @@ -0,0 +1,48 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationNamespace_06.ts === +// <|namespace [|{| defId: 0 |}F/*GOTO IMPL*/oo|] { +// declare function hello(): void; +// }|> +// +// +// let x: typeof Foo = [|{| defId: 1 |}{ hello() {} }|]; + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "moduleName" + } + ], + "kind": "module" + }, + { + "defId": 1, + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_00.baseline.jsonc b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_00.baseline.jsonc new file mode 100644 index 0000000000000..aa6144838e4bf --- /dev/null +++ b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_00.baseline.jsonc @@ -0,0 +1,135 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts === +// interface Foo { +// someFunction(): void; +// } +// +// interface FooConstructor { +// new (): Foo +// } +// +// interface Bar { +// Foo: FooConstructor; +// } +// +// var x = <|class [|Foo|] { +// createBarInClassExpression(): Bar { +// return { +// Fo/*GOTO IMPL*/o +// }; +// } +// +// someFunction() {} +// }|> +// +// class Foo { +// +// } +// +// function createBarUsingClassDeclaration(): Bar { +// return { +// Foo +// }; +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "local class" + } + ] + + + +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts === +// interface Foo { +// someFunction(): void; +// } +// +// interface FooConstructor { +// new (): Foo +// } +// +// interface Bar { +// Foo: FooConstructor; +// } +// +// var x = class Foo { +// createBarInClassExpression(): Bar { +// return { +// Foo +// }; +// } +// +// someFunction() {} +// } +// +// <|class [|Foo|] { +// +// }|> +// +// function createBarUsingClassDeclaration(): Bar { +// return { +// Fo/*GOTO IMPL*/o +// }; +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_01.baseline.jsonc b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_01.baseline.jsonc new file mode 100644 index 0000000000000..513d577621748 --- /dev/null +++ b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_01.baseline.jsonc @@ -0,0 +1,107 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_01.ts === +// interface Foo { +// someFunction(): void; +// } +// +// interface FooConstructor { +// new (): Foo +// } +// +// interface Bar { +// Foo: FooConstructor; +// } +// +// // Class expression that gets used in a bar implementation +// var x = <|class [|{| defId: 0 |}Foo|] { +// createBarInClassExpression(): Bar { +// return { +// Foo +// }; +// } +// +// someFunction() {} +// }|>; +// +// // Class declaration that gets used in a bar implementation. This class has multiple definitions +// // (the class declaration and the interface above), but we only want the class returned +// <|class [|{| defId: 1 |}Foo|] { +// +// }|> +// +// function createBarUsingClassDeclaration(): Bar { +// return { +// Foo +// }; +// } +// +// // Class expression that does not get used in a bar implementation +// var y = class Foo { +// someFunction() {} +// }; +// +// createBarUsingClassDeclaration().Fo/*GOTO IMPL*/o; + + // === Details === + [ + { + "defId": 0, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "local class" + }, + { + "defId": 1, + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_02.baseline.jsonc b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_02.baseline.jsonc new file mode 100644 index 0000000000000..f14537ced3bb3 --- /dev/null +++ b/tests/baselines/reference/goToImplementationShorthandPropertyAssignment_02.baseline.jsonc @@ -0,0 +1,66 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_02.ts === +// interface Foo { +// hello(): void; +// } +// +// function createFoo(): Foo { +// return { +// hello +// }; +// +// <|function [|hello|]() {}|> +// } +// +// function whatever(x: Foo) { +// x.h/*GOTO IMPL*/ello(); +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local function", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "hello", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "kind": "local function" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationSuper_00.baseline.jsonc b/tests/baselines/reference/goToImplementationSuper_00.baseline.jsonc new file mode 100644 index 0000000000000..b533f575821d2 --- /dev/null +++ b/tests/baselines/reference/goToImplementationSuper_00.baseline.jsonc @@ -0,0 +1,32 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationSuper_00.ts === +// <|class [|Foo|] { +// constructor() {} +// }|> +// +// class Bar extends Foo { +// constructor() { +// su/*GOTO IMPL*/per(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationSuper_01.baseline.jsonc b/tests/baselines/reference/goToImplementationSuper_01.baseline.jsonc new file mode 100644 index 0000000000000..73cd75d576a62 --- /dev/null +++ b/tests/baselines/reference/goToImplementationSuper_01.baseline.jsonc @@ -0,0 +1,32 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationSuper_01.ts === +// <|class [|Foo|] { +// hello() {} +// }|> +// +// class Bar extends Foo { +// hello() { +// sup/*GOTO IMPL*/er.hello(); +// } +// } + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationThis_00.baseline.jsonc b/tests/baselines/reference/goToImplementationThis_00.baseline.jsonc new file mode 100644 index 0000000000000..58bc9f5af1a0a --- /dev/null +++ b/tests/baselines/reference/goToImplementationThis_00.baseline.jsonc @@ -0,0 +1,30 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationThis_00.ts === +// <|class [|Bar|] extends Foo { +// hello() { +// thi/*GOTO IMPL*/s.whatever(); +// } +// +// whatever() {} +// }|> + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationThis_01.baseline.jsonc b/tests/baselines/reference/goToImplementationThis_01.baseline.jsonc new file mode 100644 index 0000000000000..ea07b34fa8723 --- /dev/null +++ b/tests/baselines/reference/goToImplementationThis_01.baseline.jsonc @@ -0,0 +1,28 @@ +// === goToImplementation === +// === /tests/cases/fourslash/goToImplementationThis_01.ts === +// <|class [|Bar|] extends Foo { +// hello(): th/*GOTO IMPL*/is { +// return this; +// } +// }|> + + // === Details === + [ + { + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Bar", + "kind": "className" + } + ], + "kind": "class" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementationTypeAlias_00.baseline.jsonc b/tests/baselines/reference/goToImplementationTypeAlias_00.baseline.jsonc new file mode 100644 index 0000000000000..c6b86a4f6d225 --- /dev/null +++ b/tests/baselines/reference/goToImplementationTypeAlias_00.baseline.jsonc @@ -0,0 +1,25 @@ +// === goToImplementation === +// === /tests/cases/fourslash/ref.ts === +// import { TypeAlias } from "./def"; +// const c: T/*GOTO IMPL*/ypeAlias = [|{ P: 2 }|]; + + // === Details === + [ + { + "kind": "interface", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "object literal", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToImplementation_inDifferentFiles.baseline.jsonc b/tests/baselines/reference/goToImplementation_inDifferentFiles.baseline.jsonc new file mode 100644 index 0000000000000..0acfb19f6056b --- /dev/null +++ b/tests/baselines/reference/goToImplementation_inDifferentFiles.baseline.jsonc @@ -0,0 +1,30 @@ +// === goToImplementation === +// === /bar.ts === +// import {Foo} from './foo' +// +// class [|{| defId: 0 |}A|] implements Foo { +// func() {} +// } +// +// class [|{| defId: 1 |}B|] implements Foo { +// func() {} +// } + +// === /foo.ts === +// export interface /*GOTO IMPL*/Foo { +// func(); +// } + + // === Details === + [ + { + "defId": 0, + "kind": "", + "displayParts": [] + }, + { + "defId": 1, + "kind": "", + "displayParts": [] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToModuleAliasDefinition.baseline.jsonc b/tests/baselines/reference/goToModuleAliasDefinition.baseline.jsonc new file mode 100644 index 0000000000000..2db544bb78208 --- /dev/null +++ b/tests/baselines/reference/goToModuleAliasDefinition.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToDefinition === +// === /tests/cases/fourslash/b.ts === +// <|import [|n|] = require('a');|> +// var x = new /*GOTO DEF*/n.Foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "n", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource10_mapFromAtTypes3.baseline.jsonc b/tests/baselines/reference/goToSource10_mapFromAtTypes3.baseline.jsonc new file mode 100644 index 0000000000000..47530f16cb428 --- /dev/null +++ b/tests/baselines/reference/goToSource10_mapFromAtTypes3.baseline.jsonc @@ -0,0 +1,69 @@ +// === goToSourceDefinition === +// === /node_modules/lodash/lodash.js === +// ;(function() { +// /** +// * Adds two numbers. +// * +// * @static +// * @memberOf _ +// * @since 3.4.0 +// * @category Math +// * @param {number} augend The first number in an addition. +// * @param {number} addend The second number in an addition. +// * @returns {number} Returns the total. +// * @example +// * +// * _.add(6, 4); +// * // => 10 +// */ +// var [|{| defId: 0 |}add|] = createMathOperation(function(augend, addend) { +// return augend + addend; +// }, 0); +// +// function lodash(value) {} +// lodash.[|{| defId: 1 |}add|] = add; +// +// /** Detect free variable `global` from Node.js. */ +// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// /** Detect free variable `self`. */ +// var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// /** Used as a reference to the global object. */ +// var root = freeGlobal || freeSelf || Function('return this')(); +// /** Detect free variable `exports`. */ +// var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;//// +// /** Detect free variable `module`. */ +// var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; +// if (freeModule) { +// // Export for Node.js. +// (freeModule.exports = _)._ = _; +// // Export for CommonJS support. +// freeExports._ = _; +// } +// else { +// // Export to the global object. +// root._ = _; +// } +// }.call(this)); + +// === /index.ts === +// import { /*GOTO SOURCE DEF*/add } from 'lodash'; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource11_propertyOfAlias.baseline.jsonc b/tests/baselines/reference/goToSource11_propertyOfAlias.baseline.jsonc new file mode 100644 index 0000000000000..0f9a23bc14182 --- /dev/null +++ b/tests/baselines/reference/goToSource11_propertyOfAlias.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToSourceDefinition === +// === /a.js === +// export const a = { [|a|]: 'a' }; + +// === /b.ts === +// import { a } from './a'; +// a.a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource12_callbackParam.baseline.jsonc b/tests/baselines/reference/goToSource12_callbackParam.baseline.jsonc new file mode 100644 index 0000000000000..8d98e09f5a92a --- /dev/null +++ b/tests/baselines/reference/goToSource12_callbackParam.baseline.jsonc @@ -0,0 +1,20 @@ +// === goToSourceDefinition === +// === /node_modules/yargs/index.js === +// export function command(cmd, cb) { cb({ [|positional|]: "This is obviously not even close to realistic" }); } + +// === /index.ts === +// import { command } from "yargs"; +// command("foo", yargs => { +// yargs./*GOTO SOURCE DEF*/positional(); +// }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource13_nodenext.baseline.jsonc b/tests/baselines/reference/goToSource13_nodenext.baseline.jsonc new file mode 100644 index 0000000000000..fb86ab78c37e3 --- /dev/null +++ b/tests/baselines/reference/goToSource13_nodenext.baseline.jsonc @@ -0,0 +1,18 @@ +// === goToSourceDefinition === +// === /node_modules/left-pad/index.js === +// module.exports = leftPad; +// function [|leftPad|](str, len, ch) {} + +// === /index.mts === +// import leftPad = require("left-pad"); +// /*GOTO SOURCE DEF*/leftPad("", 4); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource14_unresolvedRequireDestructuring.baseline.jsonc b/tests/baselines/reference/goToSource14_unresolvedRequireDestructuring.baseline.jsonc new file mode 100644 index 0000000000000..0814f3bc4f1b2 --- /dev/null +++ b/tests/baselines/reference/goToSource14_unresolvedRequireDestructuring.baseline.jsonc @@ -0,0 +1,3 @@ +// === goToSourceDefinition === +// === /index.js === +// const { blah/*GOTO SOURCE DEF*/ } = require("unresolved"); \ No newline at end of file diff --git a/tests/baselines/reference/goToSource1_localJsBesideDts.baseline.jsonc b/tests/baselines/reference/goToSource1_localJsBesideDts.baseline.jsonc new file mode 100644 index 0000000000000..f86c2d301d135 --- /dev/null +++ b/tests/baselines/reference/goToSource1_localJsBesideDts.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToSourceDefinition === +// === /a.js === +// export const [|a|] = "a"; + +// === /index.ts === +// import { a } from "./a"; +// a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToSourceDefinition === +// === /a.js === +// [|export const a = "a";|] + +// === /index.ts === +// import { a } from "./a"/*GOTO SOURCE DEF*/; +// a + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource2_nodeModulesWithTypes.baseline.jsonc b/tests/baselines/reference/goToSource2_nodeModulesWithTypes.baseline.jsonc new file mode 100644 index 0000000000000..aefc96f88543a --- /dev/null +++ b/tests/baselines/reference/goToSource2_nodeModulesWithTypes.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToSourceDefinition === +// === /node_modules/foo/lib/main.js === +// export const [|a|] = "a"; + +// === /index.ts === +// import { a } from "foo"; +// a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource3_nodeModulesAtTypes.baseline.jsonc b/tests/baselines/reference/goToSource3_nodeModulesAtTypes.baseline.jsonc new file mode 100644 index 0000000000000..aefc96f88543a --- /dev/null +++ b/tests/baselines/reference/goToSource3_nodeModulesAtTypes.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToSourceDefinition === +// === /node_modules/foo/lib/main.js === +// export const [|a|] = "a"; + +// === /index.ts === +// import { a } from "foo"; +// a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource5_sameAsGoToDef1.baseline.jsonc b/tests/baselines/reference/goToSource5_sameAsGoToDef1.baseline.jsonc new file mode 100644 index 0000000000000..ac088748d730b --- /dev/null +++ b/tests/baselines/reference/goToSource5_sameAsGoToDef1.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToSourceDefinition === +// === /a.ts === +// export const [|a|] = 'a'; + +// === /b.ts === +// import { a } from './a'; +// a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /a.ts === +// export const [|a|] = 'a'; + +// === /b.ts === +// import { a } from './a'; +// [|a|]/*GOTO DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource6_sameAsGoToDef2.baseline.jsonc b/tests/baselines/reference/goToSource6_sameAsGoToDef2.baseline.jsonc new file mode 100644 index 0000000000000..7c16feefa1c99 --- /dev/null +++ b/tests/baselines/reference/goToSource6_sameAsGoToDef2.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToSourceDefinition === +// === /node_modules/foo/src/a.ts === +// export const [|a |]= 'a'; + +// === /b.ts === +// import { a } from 'foo/a'; +// a/*GOTO SOURCE DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /node_modules/foo/src/a.ts === +// export const [|a |]= 'a'; + +// === /b.ts === +// import { a } from 'foo/a'; +// [|a|]/*GOTO DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource7_conditionallyMinified.baseline.jsonc b/tests/baselines/reference/goToSource7_conditionallyMinified.baseline.jsonc new file mode 100644 index 0000000000000..dc233e8fa79f4 --- /dev/null +++ b/tests/baselines/reference/goToSource7_conditionallyMinified.baseline.jsonc @@ -0,0 +1,34 @@ +// === goToSourceDefinition === +// === /node_modules/react/cjs/react.production.min.js === +// 'use strict';exports.[|{| defId: 0 |}useState|]=function(a){};exports.version='16.8.6'; + +// === /node_modules/react/cjs/react.development.js === +// 'use strict'; +// if (process.env.NODE_ENV !== 'production') { +// (function() { +// function useState(initialState) {} +// exports.[|{| defId: 1 |}useState|] = useState; +// exports.version = '16.8.6'; +// }()); +// } + +// === /index.ts === +// import { /*GOTO SOURCE DEF*/useState } from 'react'; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource8_mapFromAtTypes.baseline.jsonc b/tests/baselines/reference/goToSource8_mapFromAtTypes.baseline.jsonc new file mode 100644 index 0000000000000..47530f16cb428 --- /dev/null +++ b/tests/baselines/reference/goToSource8_mapFromAtTypes.baseline.jsonc @@ -0,0 +1,69 @@ +// === goToSourceDefinition === +// === /node_modules/lodash/lodash.js === +// ;(function() { +// /** +// * Adds two numbers. +// * +// * @static +// * @memberOf _ +// * @since 3.4.0 +// * @category Math +// * @param {number} augend The first number in an addition. +// * @param {number} addend The second number in an addition. +// * @returns {number} Returns the total. +// * @example +// * +// * _.add(6, 4); +// * // => 10 +// */ +// var [|{| defId: 0 |}add|] = createMathOperation(function(augend, addend) { +// return augend + addend; +// }, 0); +// +// function lodash(value) {} +// lodash.[|{| defId: 1 |}add|] = add; +// +// /** Detect free variable `global` from Node.js. */ +// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// /** Detect free variable `self`. */ +// var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// /** Used as a reference to the global object. */ +// var root = freeGlobal || freeSelf || Function('return this')(); +// /** Detect free variable `exports`. */ +// var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;//// +// /** Detect free variable `module`. */ +// var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; +// if (freeModule) { +// // Export for Node.js. +// (freeModule.exports = _)._ = _; +// // Export for CommonJS support. +// freeExports._ = _; +// } +// else { +// // Export to the global object. +// root._ = _; +// } +// }.call(this)); + +// === /index.ts === +// import { /*GOTO SOURCE DEF*/add } from 'lodash'; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToSource9_mapFromAtTypes2.baseline.jsonc b/tests/baselines/reference/goToSource9_mapFromAtTypes2.baseline.jsonc new file mode 100644 index 0000000000000..9fd7f7357cd38 --- /dev/null +++ b/tests/baselines/reference/goToSource9_mapFromAtTypes2.baseline.jsonc @@ -0,0 +1,188 @@ +// === goToSourceDefinition === +// === /node_modules/lodash/lodash.js === +// [||];(function() { +// /** +// * Adds two numbers. +// * +// * @static +// * @memberOf _ +// * @since 3.4.0 +// * @category Math +// * @param {number} augend The first number in an addition. +// * @param {number} addend The second number in an addition. +// * @returns {number} Returns the total. +// * @example +// * +// * _.add(6, 4); +// * // => 10 +// */ +// var add = createMathOperation(function(augend, addend) { +// return augend + addend; +// }, 0); +// +// function lodash(value) {} +// lodash.add = add; +// +// /** Detect free variable `global` from Node.js. */ +// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// /** Detect free variable `self`. */ +// var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// /** Used as a reference to the global object. */ +// var root = freeGlobal || freeSelf || Function('return this')(); +// /** Detect free variable `exports`. */ +// var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;//// +// /** Detect free variable `module`. */ +// var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; +// if (freeModule) { +// // Export for Node.js. +// (freeModule.exports = _)._ = _; +// // Export for CommonJS support. +// freeExports._ = _; +// } +// else { +// // Export to the global object. +// root._ = _; +// } +// }.call(this)); + +// === /index.ts === +// import /*GOTO SOURCE DEF*/_, { foo } from 'lodash'; +// _.add + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] + + + +// === goToSourceDefinition === +// === /node_modules/lodash/lodash.js === +// [||];(function() { +// /** +// * Adds two numbers. +// * +// * @static +// * @memberOf _ +// * @since 3.4.0 +// * @category Math +// * @param {number} augend The first number in an addition. +// * @param {number} addend The second number in an addition. +// * @returns {number} Returns the total. +// * @example +// * +// * _.add(6, 4); +// * // => 10 +// */ +// var add = createMathOperation(function(augend, addend) { +// return augend + addend; +// }, 0); +// +// function lodash(value) {} +// lodash.add = add; +// +// /** Detect free variable `global` from Node.js. */ +// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// /** Detect free variable `self`. */ +// var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// /** Used as a reference to the global object. */ +// var root = freeGlobal || freeSelf || Function('return this')(); +// /** Detect free variable `exports`. */ +// var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;//// +// /** Detect free variable `module`. */ +// var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; +// if (freeModule) { +// // Export for Node.js. +// (freeModule.exports = _)._ = _; +// // Export for CommonJS support. +// freeExports._ = _; +// } +// else { +// // Export to the global object. +// root._ = _; +// } +// }.call(this)); + +// === /index.ts === +// import _, { /*GOTO SOURCE DEF*/foo } from 'lodash'; +// _.add + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "", + "unverified": true + } + ] + + + +// === goToSourceDefinition === +// === /node_modules/lodash/lodash.js === +// [||];(function() { +// /** +// * Adds two numbers. +// * +// * @static +// * @memberOf _ +// * @since 3.4.0 +// * @category Math +// * @param {number} augend The first number in an addition. +// * @param {number} addend The second number in an addition. +// * @returns {number} Returns the total. +// * @example +// * +// * _.add(6, 4); +// * // => 10 +// */ +// var add = createMathOperation(function(augend, addend) { +// return augend + addend; +// }, 0); +// +// function lodash(value) {} +// lodash.add = add; +// +// /** Detect free variable `global` from Node.js. */ +// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +// /** Detect free variable `self`. */ +// var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +// /** Used as a reference to the global object. */ +// var root = freeGlobal || freeSelf || Function('return this')(); +// /** Detect free variable `exports`. */ +// var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;//// +// /** Detect free variable `module`. */ +// var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; +// if (freeModule) { +// // Export for Node.js. +// (freeModule.exports = _)._ = _; +// // Export for CommonJS support. +// freeExports._ = _; +// } +// else { +// // Export to the global object. +// root._ = _; +// } +// }.call(this)); + +// === /index.ts === +// import _, { foo } from /*GOTO SOURCE DEF*/'lodash'; +// _.add + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition-pp.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition-pp.baseline.jsonc new file mode 100644 index 0000000000000..b4c683f5e2651 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition-pp.baseline.jsonc @@ -0,0 +1,44 @@ +// === goToType === +// === /tests/cases/fourslash/shims-pp/goToTypeDefinition_Definition.ts === +// <|class [|C|] { +// p; +// }|> +// var c: C; + +// === /tests/cases/fourslash/shims-pp/goToTypeDefinition_Consumption.ts === +// /*GOTO TYPE*/c = undefined; + + // === Details === + [ + { + "kind": "class", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/shims-pp/goToTypeDefinition_Definition.ts === +// <|class /*GOTO TYPE*/[|C|] { +// p; +// }|> +// var c: C; + + // === Details === + [ + { + "kind": "class", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition-shims.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition-shims.baseline.jsonc new file mode 100644 index 0000000000000..e588cb1dfb4dc --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition-shims.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToType === +// === /tests/cases/fourslash/shims/goToTypeDefinition_Definition.ts === +// <|class [|C|] { +// p; +// }|> +// var c: C; + +// === /tests/cases/fourslash/shims/goToTypeDefinition_Consumption.ts === +// /*GOTO TYPE*/c = undefined; + + // === Details === + [ + { + "kind": "class", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition.baseline.jsonc new file mode 100644 index 0000000000000..2a05835961875 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_Definition.ts === +// <|class [|C|] { +// p; +// }|> +// var c: C; + +// === /tests/cases/fourslash/goToTypeDefinition_Consumption.ts === +// /*GOTO TYPE*/c = undefined; + + // === Details === + [ + { + "kind": "class", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition2.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition2.baseline.jsonc new file mode 100644 index 0000000000000..0223f9de1f279 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition2.baseline.jsonc @@ -0,0 +1,26 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition2_Definition.ts === +// <|interface [|I1|] { +// p; +// }|> +// type propertyType = I1; +// interface I2 { +// property: propertyType; +// } + +// === /tests/cases/fourslash/goToTypeDefinition2_Consumption.ts === +// var i2: I2; +// i2.prop/*GOTO TYPE*/erty; + + // === Details === + [ + { + "kind": "interface", + "name": "I1", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition3.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition3.baseline.jsonc new file mode 100644 index 0000000000000..9762101213113 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition3.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition3.ts === +// <|type [|T|] = string;|> +// const x: /*GOTO TYPE*/T; + + // === Details === + [ + { + "kind": "type", + "name": "T", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition4.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition4.baseline.jsonc new file mode 100644 index 0000000000000..1d957d23a8f45 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition4.baseline.jsonc @@ -0,0 +1,37 @@ +// === goToType === +// === /tests/cases/fourslash/bar.ts === +// import { T } from "./foo"; +// let x: /*GOTO TYPE*/T; + + + +// === goToDefinition === +// === /tests/cases/fourslash/foo.ts === +// <|export type [|{| defId: 0 |}T|] = string;|> +// <|export const [|{| defId: 1 |}T|] = "";|> + +// === /tests/cases/fourslash/bar.ts === +// import { T } from "./foo"; +// let x: /*GOTO DEF*/[|T|]; + + // === Details === + [ + { + "defId": 0, + "kind": "const", + "name": "T", + "containerName": "\"/tests/cases/fourslash/foo\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + }, + { + "defId": 1, + "kind": "const", + "name": "T", + "containerName": "\"/tests/cases/fourslash/foo\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition5.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition5.baseline.jsonc new file mode 100644 index 0000000000000..fe8f3033ead19 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition5.baseline.jsonc @@ -0,0 +1,5 @@ +// === goToType === +// === /tests/cases/fourslash/foo.ts === +// let Foo: unresolved; +// type Foo = { x: string }; +// /*GOTO TYPE*/Foo; \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionAliases.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionAliases.baseline.jsonc new file mode 100644 index 0000000000000..e9faec20be24c --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionAliases.baseline.jsonc @@ -0,0 +1,47 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinitioAliases_module1.ts === +// <|interface [|I|] { +// p; +// }|> +// export {I as I2}; + +// === /tests/cases/fourslash/goToTypeDefinitioAliases_module3.ts === +// import {/*GOTO TYPE*/v2 as v3} from "./goToTypeDefinitioAliases_module2"; +// v3; + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinitioAliases_module1.ts === +// <|interface [|I|] { +// p; +// }|> +// export {I as I2}; + +// === /tests/cases/fourslash/goToTypeDefinitioAliases_module3.ts === +// import {v2 as v3} from "./goToTypeDefinitioAliases_module2"; +// /*GOTO TYPE*/v3; + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionEnumMembers.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionEnumMembers.baseline.jsonc new file mode 100644 index 0000000000000..edaed53070c8c --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionEnumMembers.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinitionEnumMembers.ts === +// enum E { +// value1, +// [|value2|] +// } +// var x = E.value2; +// +// /*GOTO TYPE*/x; + + // === Details === + [ + { + "kind": "enum member", + "name": "value2", + "containerName": "E", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionImportMeta.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionImportMeta.baseline.jsonc new file mode 100644 index 0000000000000..26606f16565ed --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionImportMeta.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToType === +// === /tests/cases/fourslash/bar.d.ts === +// <|interface [|ImportMeta|] { +// }|> + +// === /tests/cases/fourslash/foo.ts === +// /// +// /// +// import.me/*GOTO TYPE*/ta; + + // === Details === + [ + { + "kind": "interface", + "name": "ImportMeta", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionModule.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionModule.baseline.jsonc new file mode 100644 index 0000000000000..7c9962b61cb34 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionModule.baseline.jsonc @@ -0,0 +1,49 @@ +// === goToType === +// === /tests/cases/fourslash/module1.ts === +// <|module [|M|] { +// export var p; +// }|> +// var m: typeof M; + +// === /tests/cases/fourslash/module3.ts === +// /*GOTO TYPE*/M; +// m; + + // === Details === + [ + { + "kind": "module", + "name": "M", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/module1.ts === +// <|module [|M|] { +// export var p; +// }|> +// var m: typeof M; + +// === /tests/cases/fourslash/module3.ts === +// M; +// /*GOTO TYPE*/m; + + // === Details === + [ + { + "kind": "module", + "name": "M", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionPrimitives.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionPrimitives.baseline.jsonc new file mode 100644 index 0000000000000..06cc5856d6c67 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionPrimitives.baseline.jsonc @@ -0,0 +1,33 @@ +// === goToType === +// === /tests/cases/fourslash/module2.ts === +// w./*GOTO TYPE*/a; +// x; +// y; +// y; + + + +// === goToType === +// === /tests/cases/fourslash/module2.ts === +// w.a; +// /*GOTO TYPE*/x; +// y; +// y; + + + +// === goToType === +// === /tests/cases/fourslash/module2.ts === +// w.a; +// x; +// /*GOTO TYPE*/y; +// y; + + + +// === goToType === +// === /tests/cases/fourslash/module2.ts === +// w.a; +// x; +// y; +// /*GOTO TYPE*/y; \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinitionUnionType.baseline.jsonc b/tests/baselines/reference/goToTypeDefinitionUnionType.baseline.jsonc new file mode 100644 index 0000000000000..102116911f2c8 --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinitionUnionType.baseline.jsonc @@ -0,0 +1,53 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinitionUnionType.ts === +// <|class [|{| defId: 0 |}C|] { +// p; +// }|> +// +// <|interface [|{| defId: 1 |}I|] { +// x; +// }|> +// +// module M { +// <|export interface [|{| defId: 2 |}I|] { +// y; +// }|> +// } +// +// var x: C | I | M.I; +// +// /*GOTO TYPE*/x; + + // === Details === + [ + { + "defId": 0, + "kind": "class", + "name": "C", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 2, + "kind": "interface", + "name": "I", + "containerName": "M", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition_returnType.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition_returnType.baseline.jsonc new file mode 100644 index 0000000000000..da482a0522d5a --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition_returnType.baseline.jsonc @@ -0,0 +1,474 @@ +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// <|interface [|I|] { x: number; }|> +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// /*GOTO TYPE*/f0(); +// f1(); +// f2(); +// f3(); +// f4(); +// f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// interface I { x: number; } +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = [|(i: I) => I|]; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// /*GOTO TYPE*/f1(); +// f2(); +// f3(); +// f4(); +// f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "kind": "", + "name": "__type", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// <|interface [|I|] { x: number; }|> +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// /*GOTO TYPE*/f2(); +// f3(); +// f4(); +// f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// interface I { x: number; } +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ([|{ x: i.x + 1 }|]); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// f2(); +// /*GOTO TYPE*/f3(); +// f4(); +// f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "kind": "", + "name": "__object", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// <|interface [|I|] { x: number; }|> +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// f2(); +// f3(); +// /*GOTO TYPE*/f4(); +// f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// <|interface [|{| defId: 0 |}I|] { x: number; }|> +// <|interface [|{| defId: 1 |}J|] { y: number; }|> +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// f2(); +// f3(); +// f4(); +// /*GOTO TYPE*/f5(); +// f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "interface", + "name": "J", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// <|interface [|{| defId: 0 |}I|] { x: number; }|> +// <|interface [|{| defId: 1 |}J|] { y: number; }|> +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// f2(); +// f3(); +// f4(); +// f5(); +// /*GOTO TYPE*/f6(); +// f7(); +// f8(); + + // === Details === + [ + { + "defId": 0, + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "interface", + "name": "J", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// interface I { x: number; } +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const [|{| contextId: 0 |}f7|] = <|(i: I) => {}|>; +// +// function f8(i: I): I; +// function f8(j: J): J; +// function f8(ij: any): any { return ij; } +// +// f0(); +// f1(); +// f2(); +// f3(); +// f4(); +// f5(); +// f6(); +// /*GOTO TYPE*/f7(); +// f8(); + + // === Details === + [ + { + "kind": "function", + "name": "f7", + "containerName": "", + "isLocal": false, + "isAmbient": false + } + ] + + + +// === goToType === +// === /tests/cases/fourslash/goToTypeDefinition_returnType.ts === +// interface I { x: number; } +// interface J { y: number; } +// +// function f0(): I { return { x: 0 }; } +// +// type T = (i: I) => I; +// const f1: T = i => ({ x: i.x + 1 }); +// +// const f2 = (i: I): I => ({ x: i.x + 1 }); +// +// const f3 = (i: I) => ({ x: i.x + 1 }); +// +// const f4 = (i: I) => i; +// +// const f5 = (i: I): I | J => ({ x: i.x + 1 }); +// +// const f6 = (i: I, j: J, b: boolean) => b ? i : j; +// +// const f7 = (i: I) => {}; +// +// function f8(i: I): I; +// function f8(j: J): J; +// <|function [|f8|](ij: any): any { return ij; }|> +// +// f0(); +// f1(); +// f2(); +// f3(); +// f4(); +// f5(); +// f6(); +// f7(); +// /*GOTO TYPE*/f8(); + + // === Details === + [ + { + "kind": "function", + "name": "f8", + "containerName": "", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/goToTypeDefinition_typedef.baseline.jsonc b/tests/baselines/reference/goToTypeDefinition_typedef.baseline.jsonc new file mode 100644 index 0000000000000..daac2dd0c6e5f --- /dev/null +++ b/tests/baselines/reference/goToTypeDefinition_typedef.baseline.jsonc @@ -0,0 +1,22 @@ +// === goToType === +// === /a.js === +// /** +// * [|@typedef {object} I +// * @property {number} x +// |]*/ +// +// /** @type {I} */ +// const /*GOTO TYPE*/i = { x: 0 }; + + // === Details === + [ + { + "kind": "", + "name": "__type", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionConstructorFunction.baseline.jsonc b/tests/baselines/reference/gotoDefinitionConstructorFunction.baseline.jsonc new file mode 100644 index 0000000000000..ab62a355e632a --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionConstructorFunction.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionConstructorFunction.js === +// <|function [|StringStreamm|]() { +// }|> +// StringStreamm.prototype = { +// }; +// +// function runMode () { +// new /*GOTO DEF*/StringStreamm() +// }; + + // === Details === + [ + { + "kind": "function", + "name": "StringStreamm", + "containerName": "", + "isLocal": false, + "isAmbient": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionInObjectBindingPattern1.baseline.jsonc b/tests/baselines/reference/gotoDefinitionInObjectBindingPattern1.baseline.jsonc new file mode 100644 index 0000000000000..962151b0c4279 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionInObjectBindingPattern1.baseline.jsonc @@ -0,0 +1,21 @@ +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionInObjectBindingPattern1.ts === +// function bar(onfulfilled: (value: T) => void) { +// return undefined; +// } +// interface Test { +// <|[|prop2|]: number|> +// } +// bar(({pr/*GOTO DEF*/op2})=>{}); + + // === Details === + [ + { + "kind": "property", + "name": "prop2", + "containerName": "Test", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionInObjectBindingPattern2.baseline.jsonc b/tests/baselines/reference/gotoDefinitionInObjectBindingPattern2.baseline.jsonc new file mode 100644 index 0000000000000..476a340d8fe2d --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionInObjectBindingPattern2.baseline.jsonc @@ -0,0 +1,42 @@ +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts === +// var p0 = ({a/*GOTO DEF*/a}) => {console.log(aa)}; +// function f2({ a1, b1 }: { a1: number, b1: number } = { a1: 0, b1: 0 }) {} + + + +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts === +// var p0 = ({aa}) => {console.log(aa)}; +// function f2({ a/*GOTO DEF*/1, b1 }: { <|[|a1|]: number,|> b1: number } = { a1: 0, b1: 0 }) {} + + // === Details === + [ + { + "kind": "property", + "name": "a1", + "containerName": "__type", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts === +// var p0 = ({aa}) => {console.log(aa)}; +// function f2({ a1, b/*GOTO DEF*/1 }: { a1: number, <|[|b1|]: number|> } = { a1: 0, b1: 0 }) {} + + // === Details === + [ + { + "kind": "property", + "name": "b1", + "containerName": "__type", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag1.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag1.baseline.jsonc new file mode 100644 index 0000000000000..f559176cdf0a1 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag1.baseline.jsonc @@ -0,0 +1,267 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** {@link /*GOTO DEF POS*/Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// <|export interface [|Bar|] { +// baz: Foo +// }|> +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS./*GOTO DEF POS*/Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "interface", + "name": "Bar", + "containerName": "NS", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link /*GOTO DEF POS*/Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// <|export interface [|Bar|] { +// baz: Foo +// }|> +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS./*GOTO DEF POS*/Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "interface", + "name": "Bar", + "containerName": "NS", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// <|const [|d|] = ""|> +// /** {@link /*GOTO DEF POS*/d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "const", + "name": "d", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link /*GOTO DEF POS*/Foo} */ +// function foo(x) { } + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** {@link Foo} foooo*/ +// const a = "" +// /** {@link NS.Bar} ns.bar*/ +// const b = "" +// /** {@link Foo f1}*/ +// const c = "" +// /** {@link NS.Bar ns.bar}*/ +// const d = "" +// /** {@link d }dd*/ +// const e = "" +// /** @param x {@link Foo} */ +// function foo(x) { } + +// === /tests/cases/fourslash/bar.ts === +// /** {@link /*GOTO DEF POS*/Foo }dd*/ +// const f = "" + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag2.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag2.baseline.jsonc new file mode 100644 index 0000000000000..977b445ca7896 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag2.baseline.jsonc @@ -0,0 +1,19 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/gotoDefinitionLinkTag2.ts === +// enum E { +// /** {@link /*GOTO DEF POS*/A} */ +// [|A|] +// } + + // === Details === + [ + { + "kind": "enum member", + "name": "A", + "containerName": "E", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag3.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag3.baseline.jsonc new file mode 100644 index 0000000000000..b844a4faca27b --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag3.baseline.jsonc @@ -0,0 +1,22 @@ +// === getDefinitionAtPosition === +// === /a.ts === +// enum E { +// /** {@link /*GOTO DEF POS*/Foo} */ +// Foo +// } +// <|interface [|Foo|] { +// foo: E.Foo; +// }|> + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag4.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag4.baseline.jsonc new file mode 100644 index 0000000000000..ae96c2d7a6fdf --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag4.baseline.jsonc @@ -0,0 +1,24 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/a.ts === +// <|interface [|Foo|] { +// foo: E.Foo; +// }|> + +// === /tests/cases/fourslash/b.ts === +// enum E { +// /** {@link /*GOTO DEF POS*/Foo} */ +// Foo +// } + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag5.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag5.baseline.jsonc new file mode 100644 index 0000000000000..e106334a34099 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag5.baseline.jsonc @@ -0,0 +1,20 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/gotoDefinitionLinkTag5.ts === +// enum E { +// /** {@link /*GOTO DEF POS*/B} */ +// A, +// [|B|] +// } + + // === Details === + [ + { + "kind": "enum member", + "name": "B", + "containerName": "E", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionLinkTag6.baseline.jsonc b/tests/baselines/reference/gotoDefinitionLinkTag6.baseline.jsonc new file mode 100644 index 0000000000000..af4255dce4945 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionLinkTag6.baseline.jsonc @@ -0,0 +1,19 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/gotoDefinitionLinkTag6.ts === +// enum E { +// /** {@link E./*GOTO DEF POS*/A} */ +// [|A|] +// } + + // === Details === + [ + { + "kind": "enum member", + "name": "A", + "containerName": "E", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionPropertyAccessExpressionHeritageClause.baseline.jsonc b/tests/baselines/reference/gotoDefinitionPropertyAccessExpressionHeritageClause.baseline.jsonc new file mode 100644 index 0000000000000..db094b694c631 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionPropertyAccessExpressionHeritageClause.baseline.jsonc @@ -0,0 +1,45 @@ +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts === +// class B {} +// function foo() { +// return {<|[|B|]: B|>}; +// } +// class C extends (foo())./*GOTO DEF*/B {} +// class C1 extends foo().B {} + + // === Details === + [ + { + "kind": "property", + "name": "B", + "containerName": "__object", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts === +// class B {} +// function foo() { +// return {<|[|B|]: B|>}; +// } +// class C extends (foo()).B {} +// class C1 extends foo()./*GOTO DEF*/B {} + + // === Details === + [ + { + "kind": "property", + "name": "B", + "containerName": "__object", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionSatisfiesTag.baseline.jsonc b/tests/baselines/reference/gotoDefinitionSatisfiesTag.baseline.jsonc new file mode 100644 index 0000000000000..bb70e9dc38460 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionSatisfiesTag.baseline.jsonc @@ -0,0 +1,22 @@ +// === getDefinitionAtPosition === +// === /a.js === +// /** +// * <|@typedef {Object} [|T|] +// * @property {number} a +// |>*/ +// +// /** @satisfies {/*GOTO DEF POS*/T} comment */ +// const foo = { a: 1 }; + + // === Details === + [ + { + "kind": "type", + "name": "T", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/gotoDefinitionThrowsTag.baseline.jsonc b/tests/baselines/reference/gotoDefinitionThrowsTag.baseline.jsonc new file mode 100644 index 0000000000000..850a79084f919 --- /dev/null +++ b/tests/baselines/reference/gotoDefinitionThrowsTag.baseline.jsonc @@ -0,0 +1,21 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/gotoDefinitionThrowsTag.ts === +// <|class [|E|] extends Error {}|> +// +// /** +// * @throws {/*GOTO DEF POS*/E} +// */ +// function f() {} + + // === Details === + [ + { + "kind": "class", + "name": "E", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline b/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline deleted file mode 100644 index 6f5759046e706..0000000000000 --- a/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline +++ /dev/null @@ -1,5 +0,0 @@ -/*====== /tests/cases/fourslash/b.js ======*/ - -export { - [|RENAME|] -} from './a'; diff --git a/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline.jsonc b/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline.jsonc new file mode 100644 index 0000000000000..8eba063b6a146 --- /dev/null +++ b/tests/baselines/reference/highlightsForExportFromUnfoundModule.baseline.jsonc @@ -0,0 +1,5 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/b.js === +// <|export { +// /*START PREFIX*/foo as /*RENAME*/[|fooRENAME|] +// } from './a';|> \ No newline at end of file diff --git a/tests/baselines/reference/hoverOverComment.baseline.jsonc b/tests/baselines/reference/hoverOverComment.baseline.jsonc index 66dc9051da651..007d158d60528 100644 --- a/tests/baselines/reference/hoverOverComment.baseline.jsonc +++ b/tests/baselines/reference/hoverOverComment.baseline.jsonc @@ -1 +1,13 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/hoverOverComment.ts === +// export function f() {} +// //foo +// /*FIND ALL REFS*///moo + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/hoverOverComment.ts === +// export function f() {} +// //foo +// /*GOTO DEF POS*///moo \ No newline at end of file diff --git a/tests/baselines/reference/implementation01.baseline.jsonc b/tests/baselines/reference/implementation01.baseline.jsonc new file mode 100644 index 0000000000000..de82dd724e0a5 --- /dev/null +++ b/tests/baselines/reference/implementation01.baseline.jsonc @@ -0,0 +1,12 @@ +// === goToImplementation === +// === /tests/cases/fourslash/server/implementation01.ts === +// interface Fo/*GOTO IMPL*/o {} +// class [|Bar|] implements Foo {} + + // === Details === + [ + { + "kind": "", + "displayParts": [] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/importTypeNodeGoToDefinition.baseline.jsonc b/tests/baselines/reference/importTypeNodeGoToDefinition.baseline.jsonc new file mode 100644 index 0000000000000..56b61250f665e --- /dev/null +++ b/tests/baselines/reference/importTypeNodeGoToDefinition.baseline.jsonc @@ -0,0 +1,186 @@ +// === goToDefinition === +// === /ns.ts === +// [|export namespace Foo { +// export namespace Bar { +// export class Baz {} +// } +// }|] + +// === /usage.ts === +// type A = typeof import(/*GOTO DEF*/[|"./ns"|]).Foo.Bar; +// type B = import("./ns").Foo.Bar.Baz; + + // === Details === + [ + { + "kind": "module", + "name": "\"/ns\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// <|export namespace [|Foo|] { +// export namespace Bar { +// export class Baz {} +// } +// }|> + +// === /usage.ts === +// type A = typeof import("./ns")./*GOTO DEF*/[|Foo|].Bar; +// type B = import("./ns").Foo.Bar.Baz; + + // === Details === + [ + { + "kind": "module", + "name": "Foo", + "containerName": "\"/ns\"", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// export namespace Foo { +// <|export namespace [|Bar|] { +// export class Baz {} +// }|> +// } + +// === /usage.ts === +// type A = typeof import("./ns").Foo./*GOTO DEF*/[|Bar|]; +// type B = import("./ns").Foo.Bar.Baz; + + // === Details === + [ + { + "kind": "module", + "name": "Bar", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// [|export namespace Foo { +// export namespace Bar { +// export class Baz {} +// } +// }|] + +// === /usage.ts === +// type A = typeof import("./ns").Foo.Bar; +// type B = import(/*GOTO DEF*/[|"./ns"|]).Foo.Bar.Baz; + + // === Details === + [ + { + "kind": "module", + "name": "\"/ns\"", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// <|export namespace [|Foo|] { +// export namespace Bar { +// export class Baz {} +// } +// }|> + +// === /usage.ts === +// type A = typeof import("./ns").Foo.Bar; +// type B = import("./ns")./*GOTO DEF*/[|Foo|].Bar.Baz; + + // === Details === + [ + { + "kind": "module", + "name": "Foo", + "containerName": "\"/ns\"", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// export namespace Foo { +// <|export namespace [|Bar|] { +// export class Baz {} +// }|> +// } + +// === /usage.ts === +// type A = typeof import("./ns").Foo.Bar; +// type B = import("./ns").Foo./*GOTO DEF*/[|Bar|].Baz; + + // === Details === + [ + { + "kind": "module", + "name": "Bar", + "containerName": "Foo", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /ns.ts === +// export namespace Foo { +// export namespace Bar { +// <|export class [|Baz|] {}|> +// } +// } + +// === /usage.ts === +// type A = typeof import("./ns").Foo.Bar; +// type B = import("./ns").Foo.Bar./*GOTO DEF*/[|Baz|]; + + // === Details === + [ + { + "kind": "class", + "name": "Baz", + "containerName": "Foo.Bar", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/indirectJsRequireRename.baseline.jsonc b/tests/baselines/reference/indirectJsRequireRename.baseline.jsonc index 3dee7afe2d657..ffea507d2dbd7 100644 --- a/tests/baselines/reference/indirectJsRequireRename.baseline.jsonc +++ b/tests/baselines/reference/indirectJsRequireRename.baseline.jsonc @@ -1,132 +1,93 @@ -// === /lib/plugins/aws/package/compile/events/httpApi/index.js === -// const { [|logWarning|] } = require('../../../../../../classes/Error'); - +// === findAllReferences === // === /lib/classes/Error.js === -// module.exports.[|logWarning|] = message => { }; +// <|module.exports.[|{| isWriteAccess: true |}logWarning|] = message => { };|> // === /bin/serverless.js === // require('../lib/classes/Error').[|log/*FIND ALL REFS*/Warning|](`CLI triage crashed with: ${error.stack}`); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/lib/classes/Error.js", - "kind": "property", - "name": "(property) logWarning: (message: any) => void", - "textSpan": { - "start": 15, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "logWarning", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 10 - }, - "fileName": "/lib/classes/Error.js", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 32, - "length": 10 - }, - "fileName": "/bin/serverless.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 10 - }, - "fileName": "/lib/plugins/aws/package/compile/events/httpApi/index.js", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - } +// === /lib/plugins/aws/package/compile/events/httpApi/index.js === +// <|const { [|{| isWriteAccess: true |}logWarning|] } = require('../../../../../../classes/Error');|> + + // === Definitions === + // === /lib/classes/Error.js === + // <|module.exports.[|logWarning|]|> = message => { }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) logWarning: (message: any) => void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "logWarning", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc b/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc index cc0ce5e09e75e..90d50057a71d7 100644 --- a/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionAcrossGlobalProjects.baseline.jsonc @@ -1,8 +1,9 @@ +// === findAllReferences === // === /a/index.ts === // namespace NS { -// export function /*FIND ALL REFS*/[|FA|]() { +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FA|]() { // FB(); -// } +// }|> // } // // interface I { @@ -15,91 +16,87 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "function", - "name": "function NS.FA(): void", - "textSpan": { - "start": 35, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 42 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 19, - "length": 42 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /a/index.ts === + // namespace NS { + // <|export function /*FIND ALL REFS*/[|FA|]() { + // FB(); + // }|> + // } + // + // interface I { + // FA(); + // } + // + // const ia: I = { + // FA() { }, + // FB() { }, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FA(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // namespace NS { // export function FB() {} // } // -// interface [|I|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}I|] { // FB(); -// } +// }|> // // const ib: [|I|] = { FB() {} }; @@ -108,9 +105,9 @@ // export function FC() {} // } // -// interface [|I|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}I|] { // FC(); -// } +// }|> // // const ic: [|I|] = { FC() {} }; @@ -121,9 +118,9 @@ // } // } // -// interface /*FIND ALL REFS*/[|I|] { +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // // const ia: [|I|] = { // FA() { }, @@ -131,108 +128,45 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 56, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 46, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/b/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 65, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b/index.ts === + // namespace NS { + // export function FB() {} + // } + // + // <|interface [|I|] { + // FB(); + // }|> + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a/index.ts === // namespace NS { // export function FA() { @@ -241,116 +175,99 @@ // } // // interface I { -// /*FIND ALL REFS*/[|FA|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}FA|]();|> // } // // const ia: I = { -// [|FA|]() { }, +// <|[|{| isWriteAccess: true |}FA|]() { }|>, // FB() { }, // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "method", - "name": "(method) I.FA(): any", - "textSpan": { - "start": 83, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 83, - "length": 5 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 112, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 112, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /a/index.ts === + // namespace NS { + // export function FA() { + // FB(); + // } + // } + // + // interface I { + // /*FIND ALL REFS*/<|[|FA|]();|> + // } + // + // const ia: I = { + // FA() { }, + // FB() { }, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FA(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // namespace NS { -// export function /*FIND ALL REFS*/[|FB|]() {} +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FB|]() {}|> // } // // interface I { @@ -376,100 +293,81 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "function", - "name": "function NS.FB(): void", - "textSpan": { - "start": 35, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FB", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 19, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b/index.ts === + // namespace NS { + // <|export function /*FIND ALL REFS*/[|FB|]() {}|> + // } + // + // interface I { + // FB(); + // } + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FB(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // namespace NS { // export function FB() {} // } // -// interface /*FIND ALL REFS*/[|I|] { +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}I|] { // FB(); -// } +// }|> // // const ib: [|I|] = { FB() {} }; @@ -478,9 +376,9 @@ // export function FC() {} // } // -// interface [|I|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}I|] { // FC(); -// } +// }|> // // const ic: [|I|] = { FC() {} }; @@ -491,9 +389,9 @@ // } // } // -// interface [|I|] { +// <|interface [|{| isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // // const ia: [|I|] = { // FA() { }, @@ -501,118 +399,55 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 56, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 46, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/b/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 65, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b/index.ts === + // namespace NS { + // export function FB() {} + // } + // + // <|interface /*FIND ALL REFS*/[|I|] { + // FB(); + // }|> + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // namespace NS { // export function FB() {} // } // // interface I { -// /*FIND ALL REFS*/[|FB|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}FB|]();|> // } // -// const ib: I = { [|FB|]() {} }; +// const ib: I = { <|[|{| isWriteAccess: true |}FB|]() {}|> }; // === /a/index.ts === // namespace NS { @@ -627,124 +462,88 @@ // // const ia: I = { // FA() { }, -// [|FB|]() { }, +// <|[|{| isWriteAccess: true |}FB|]() { }|>, // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "method", - "name": "(method) I.FB(): any", - "textSpan": { - "start": 64, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FB", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 64, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 64, - "length": 5 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 89, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 89, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 126, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 126, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /b/index.ts === + // namespace NS { + // export function FB() {} + // } + // + // interface I { + // /*FIND ALL REFS*/<|[|FB|]();|> + // } + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FB(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c/index.ts === // namespace NS { -// export function /*FIND ALL REFS*/[|FC|]() {} +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FC|]() {}|> // } // // interface I { @@ -753,104 +552,94 @@ // // const ic: I = { FC() {} }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "function", - "name": "function NS.FC(): void", - "textSpan": { - "start": 35, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FC", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 19, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 19, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /c/index.ts === + // namespace NS { + // <|export function /*FIND ALL REFS*/[|FC|]() {}|> + // } + // + // interface I { + // FC(); + // } + // + // const ic: I = { FC() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FC(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c/index.ts === // namespace NS { // export function FC() {} // } // -// interface /*FIND ALL REFS*/[|I|] { +// <|interface /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FC(); -// } +// }|> // -// const ic: [|I|] = { FC() {} }; +// const ic: [|{| defId: 0 |}I|] = { FC() {} }; // === /b/index.ts === // namespace NS { // export function FB() {} // } // -// interface [|I|] { +// <|interface [|{| defId: 1, isWriteAccess: true, isDefinition: true |}I|] { // FB(); -// } +// }|> // -// const ib: [|I|] = { FB() {} }; +// const ib: [|{| defId: 1 |}I|] = { FB() {} }; // === /a/index.ts === // namespace NS { @@ -859,161 +648,98 @@ // } // } // -// interface [|I|] { +// <|interface [|{| defId: 1, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // -// const ia: [|I|] = { +// const ia: [|{| defId: 1 |}I|] = { // FA() { }, // FB() { }, // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 56, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 46, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /c/index.ts === + // namespace NS { + // export function FC() {} + // } + // + // <|interface /*FIND ALL REFS*/[|{| defId: 0 |}I|] { + // FC(); + // }|> + // + // const ic: I = { FC() {} }; + + // === /b/index.ts === + // namespace NS { + // export function FB() {} + // } + // + // <|interface [|{| defId: 1 |}I|] { + // FB(); + // }|> + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 56, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 46, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 56, - "length": 1 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 46, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/b/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 75, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 65, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 102, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c/index.ts === // namespace NS { // export function FC() {} // } // // interface I { -// /*FIND ALL REFS*/[|FC|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}FC|]();|> // } // -// const ic: I = { [|FC|]() {} }; +// const ic: I = { <|[|{| isWriteAccess: true |}FC|]() {}|> }; // === /a/index.ts === // namespace NS { @@ -1029,116 +755,77 @@ // const ia: I = { // FA() { }, // FB() { }, -// [|FC|]() { }, +// <|[|{| isWriteAccess: true |}FC|]() { }|>, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "method", - "name": "(method) I.FC(): any", - "textSpan": { - "start": 64, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FC", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 64, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 64, - "length": 5 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 89, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 89, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 140, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 140, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /c/index.ts === + // namespace NS { + // export function FC() {} + // } + // + // interface I { + // /*FIND ALL REFS*/<|[|FC|]();|> + // } + // + // const ic: I = { FC() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FC(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc b/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc index 4c5b75a2d1e68..12a43b8fa755f 100644 --- a/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionAcrossModuleProjects.baseline.jsonc @@ -1,10 +1,11 @@ +// === findAllReferences === // === /a/index.ts === // import { NS } from "../b"; // import { I } from "../c"; // // declare module "../b" { // export namespace NS { -// export function /*FIND ALL REFS*/[|FA|](); +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FA|]();|> // } // } // @@ -19,95 +20,97 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "function", - "name": "function NS.FA(): any", - "textSpan": { - "start": 128, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 112, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 112, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 242, - "length": 2 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a/index.ts === + // import { NS } from "../b"; + // import { I } from "../c"; + // + // declare module "../b" { + // export namespace NS { + // <|export function /*FIND ALL REFS*/[|FA|]();|> + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FA(): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { +// FC(); +// }|> +// +// const ic: [|{| defId: 0 |}I|] = { FC() {} }; // === /a/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 1, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -116,19 +119,19 @@ // } // // declare module "../c" { -// export interface /*FIND ALL REFS*/[|I|] { +// <|export interface /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 1 |}I|] = { // FA: NS.FA, // FC() { }, // }; // === /a2/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 2, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -137,285 +140,204 @@ // } // // declare module "../c" { -// export interface [|I|] { +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 2 |}I|] = { // FA: NS.FA, // FC() { }, // }; -// === /c/index.ts === -// export namespace NS { -// export function FC() {} -// } -// -// export interface [|I|] { -// FC(); -// } -// -// const ic: [|I|] = { FC() {} }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 53, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 53, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 97, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /c/index.ts === + // export namespace NS { + // export function FC() {} + // } + // + // <|export interface [|{| defId: 0 |}I|] { + // FC(); + // }|> + // + // const ic: I = { FC() {} }; + + // === /a/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 1 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface /*FIND ALL REFS*/I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === /a2/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 2 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a2/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a2/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a/index.ts === // import { NS } from "../b"; // import { I } from "../c"; @@ -428,120 +350,107 @@ // // declare module "../c" { // export interface I { -// /*FIND ALL REFS*/[|FA|](); +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}FA|]();|> // } // } // // const ia: I = { -// [|FA|]: NS.FA, +// <|[|{| isWriteAccess: true |}FA|]: NS.FA|>, // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "method", - "name": "(method) I.FA(): any", - "textSpan": { - "start": 200, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 200, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 200, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 200, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 235, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 235, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /a/index.ts === + // import { NS } from "../b"; + // import { I } from "../c"; + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // /*FIND ALL REFS*/<|[|FA|]();|> + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FA(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a2/index.ts === // import { NS } from "../b"; // import { I } from "../c"; // // declare module "../b" { // export namespace NS { -// export function /*FIND ALL REFS*/[|FA|](); +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FA|]();|> // } // } // @@ -556,95 +465,97 @@ // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a2/index.ts", - "kind": "function", - "name": "function NS.FA(): any", - "textSpan": { - "start": 128, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 112, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 2 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 112, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 242, - "length": 2 - }, - "fileName": "/a2/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /a2/index.ts === + // import { NS } from "../b"; + // import { I } from "../c"; + // + // declare module "../b" { + // export namespace NS { + // <|export function /*FIND ALL REFS*/[|FA|]();|> + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FA(): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { +// FC(); +// }|> +// +// const ic: [|{| defId: 0 |}I|] = { FC() {} }; // === /a2/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 1, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -653,19 +564,19 @@ // } // // declare module "../c" { -// export interface /*FIND ALL REFS*/[|I|] { +// <|export interface /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 1 |}I|] = { // FA: NS.FA, // FC() { }, // }; // === /a/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 2, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -674,285 +585,204 @@ // } // // declare module "../c" { -// export interface [|I|] { +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 2 |}I|] = { // FA: NS.FA, // FC() { }, // }; -// === /c/index.ts === -// export namespace NS { -// export function FC() {} -// } -// -// export interface [|I|] { -// FC(); -// } -// -// const ic: [|I|] = { FC() {} }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 53, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 53, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 97, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /c/index.ts === + // export namespace NS { + // export function FC() {} + // } + // + // <|export interface [|{| defId: 0 |}I|] { + // FC(); + // }|> + // + // const ic: I = { FC() {} }; + + // === /a2/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 1 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface /*FIND ALL REFS*/I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === /a/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 2 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a2/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a2/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /a2/index.ts === // import { NS } from "../b"; // import { I } from "../c"; @@ -965,116 +795,103 @@ // // declare module "../c" { // export interface I { -// /*FIND ALL REFS*/[|FA|](); +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}FA|]();|> // } // } // // const ia: I = { -// [|FA|]: NS.FA, +// <|[|{| isWriteAccess: true |}FA|]: NS.FA|>, // FC() { }, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a2/index.ts", - "kind": "method", - "name": "(method) I.FA(): any", - "textSpan": { - "start": 200, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FA", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 200, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 200, - "length": 2 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 200, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 235, - "length": 2 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 235, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /a2/index.ts === + // import { NS } from "../b"; + // import { I } from "../c"; + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // /*FIND ALL REFS*/<|[|FA|]();|> + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FA(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FA", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // export namespace NS { -// export function /*FIND ALL REFS*/[|FB|]() {} +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FB|]() {}|> // } // // export interface I { @@ -1083,264 +900,212 @@ // // const ib: I = { FB() {} }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "function", - "name": "function NS.FB(): void", - "textSpan": { - "start": 42, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FB", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 26, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /b/index.ts === + // export namespace NS { + // <|export function /*FIND ALL REFS*/[|FB|]() {}|> + // } + // + // export interface I { + // FB(); + // } + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FB(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // export namespace NS { // export function FB() {} // } // -// export interface /*FIND ALL REFS*/[|I|] { +// <|export interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}I|] { // FB(); -// } +// }|> // // const ib: [|I|] = { FB() {} }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 53, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 53, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 97, - "length": 1 - }, - "fileName": "/b/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /b/index.ts === + // export namespace NS { + // export function FB() {} + // } + // + // <|export interface /*FIND ALL REFS*/[|I|] { + // FB(); + // }|> + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /b/index.ts === // export namespace NS { // export function FB() {} // } // // export interface I { -// /*FIND ALL REFS*/[|FB|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}FB|]();|> // } // -// const ib: I = { [|FB|]() {} }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b/index.ts", - "kind": "method", - "name": "(method) I.FB(): any", - "textSpan": { - "start": 78, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FB", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 78, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 78, - "length": 5 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 2 - }, - "fileName": "/b/index.ts", - "contextSpan": { - "start": 103, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - } +// const ib: I = { <|[|{| isWriteAccess: true |}FB|]() {}|> }; + + // === Definitions === + // === /b/index.ts === + // export namespace NS { + // export function FB() {} + // } + // + // export interface I { + // /*FIND ALL REFS*/<|[|FB|]();|> + // } + // + // const ib: I = { FB() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FB(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FB", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c/index.ts === // export namespace NS { -// export function /*FIND ALL REFS*/[|FC|]() {} +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}FC|]() {}|> // } // // export interface I { @@ -1349,86 +1114,87 @@ // // const ic: I = { FC() {} }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "function", - "name": "function NS.FC(): void", - "textSpan": { - "start": 42, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NS", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FC", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 42, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 26, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /c/index.ts === + // export namespace NS { + // <|export function /*FIND ALL REFS*/[|FC|]() {}|> + // } + // + // export interface I { + // FC(); + // } + // + // const ic: I = { FC() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function NS.FC(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NS", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /c/index.ts === +// export namespace NS { +// export function FC() {} +// } +// +// <|export interface /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { +// FC(); +// }|> +// +// const ic: [|{| defId: 0 |}I|] = { FC() {} }; // === /a/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 1, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -1437,19 +1203,19 @@ // } // // declare module "../c" { -// export interface [|I|] { +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 1 |}I|] = { // FA: NS.FA, // FC() { }, // }; // === /a2/index.ts === // import { NS } from "../b"; -// import { [|I|] } from "../c"; +// <|import { [|{| defId: 2, isWriteAccess: true |}I|] } from "../c";|> // // declare module "../b" { // export namespace NS { @@ -1458,295 +1224,214 @@ // } // // declare module "../c" { -// export interface [|I|] { +// <|export interface [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] { // FA(); -// } +// }|> // } // -// const ia: [|I|] = { +// const ia: [|{| defId: 2 |}I|] = { // FA: NS.FA, // FC() { }, // }; -// === /c/index.ts === -// export namespace NS { -// export function FC() {} -// } -// -// export interface /*FIND ALL REFS*/[|I|] { -// FC(); -// } -// -// const ic: [|I|] = { FC() {} }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 53, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 53, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 97, - "length": 1 - }, - "fileName": "/c/index.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 188, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 171, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /c/index.ts === + // export namespace NS { + // export function FC() {} + // } + // + // <|export interface /*FIND ALL REFS*/[|{| defId: 0 |}I|] { + // FC(); + // }|> + // + // const ic: I = { FC() {} }; + + // === /a/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 1 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === /a2/index.ts === + // import { NS } from "../b"; + // <|import { [|{| defId: 2 |}I|] } from "../c";|> + // + // declare module "../b" { + // export namespace NS { + // export function FA(); + // } + // } + // + // declare module "../c" { + // export interface I { + // FA(); + // } + // } + // + // const ia: I = { + // FA: NS.FA, + // FC() { }, + // }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a2/index.ts", - "kind": "alias", - "name": "(alias) interface I\nimport I", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 27, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 27, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 225, - "length": 1 - }, - "fileName": "/a2/index.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) interface I\nimport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /c/index.ts === // export namespace NS { // export function FC() {} // } // // export interface I { -// /*FIND ALL REFS*/[|FC|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}FC|]();|> // } // -// const ic: I = { [|FC|]() {} }; +// const ic: I = { <|[|{| isWriteAccess: true |}FC|]() {}|> }; // === /a/index.ts === // import { NS } from "../b"; @@ -1766,7 +1451,7 @@ // // const ia: I = { // FA: NS.FA, -// [|FC|]() { }, +// <|[|{| isWriteAccess: true |}FC|]() { }|>, // }; // === /a2/index.ts === @@ -1787,129 +1472,77 @@ // // const ia: I = { // FA: NS.FA, -// [|FC|]() { }, +// <|[|{| isWriteAccess: true |}FC|]() { }|>, // }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c/index.ts", - "kind": "method", - "name": "(method) I.FC(): any", - "textSpan": { - "start": 78, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "FC", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 78, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 78, - "length": 5 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 103, - "length": 2 - }, - "fileName": "/c/index.ts", - "contextSpan": { - "start": 103, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 250, - "length": 2 - }, - "fileName": "/a/index.ts", - "contextSpan": { - "start": 250, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 250, - "length": 2 - }, - "fileName": "/a2/index.ts", - "contextSpan": { - "start": 250, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /c/index.ts === + // export namespace NS { + // export function FC() {} + // } + // + // export interface I { + // /*FIND ALL REFS*/<|[|FC|]();|> + // } + // + // const ic: I = { FC() {} }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.FC(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "FC", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionInterfaceImplementation.baseline.jsonc b/tests/baselines/reference/isDefinitionInterfaceImplementation.baseline.jsonc index ce6cf863fff7e..8bda30f8d91ac 100644 --- a/tests/baselines/reference/isDefinitionInterfaceImplementation.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionInterfaceImplementation.baseline.jsonc @@ -1,393 +1,289 @@ +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionInterfaceImplementation.ts === // interface I { -// /*FIND ALL REFS*/[|M|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}M|](): void;|> // } // // class C implements I { -// [|M|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}M|]() { }|> // } // -// ({} as I).[|M|](); -// ({} as C).[|M|](); +// ({} as I).[|{| defId: 0 |}M|](); +// ({} as C).[|{| defId: 1 |}M|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "kind": "method", - "name": "(method) I.M(): void", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "M", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "contextSpan": { - "start": 18, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 80, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionInterfaceImplementation.ts === + // interface I { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}M|](): void;|> + // } + // + // class C implements I { + // <|[|{| defId: 1 |}M|]() { }|> + // } + // + // ({} as I).M(); + // ({} as C).M(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.M(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "M", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "kind": "method", - "name": "(method) C.M(): void", - "textSpan": { - "start": 59, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "M", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 59, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 59, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "contextSpan": { - "start": 59, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.M(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "M", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionInterfaceImplementation.ts === // interface I { -// [|M|](): void; +// <|[|{| defId: 0 |}M|](): void;|> // } // // class C implements I { -// /*FIND ALL REFS*/[|M|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}M|]() { }|> // } // -// ({} as I).[|M|](); -// ({} as C).[|M|](); +// ({} as I).[|{| defId: 0 |}M|](); +// ({} as C).[|{| defId: 1 |}M|](); + + // === Definitions === + // === /tests/cases/fourslash/isDefinitionInterfaceImplementation.ts === + // interface I { + // <|[|{| defId: 0 |}M|](): void;|> + // } + // + // class C implements I { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}M|]() { }|> + // } + // + // ({} as I).M(); + // ({} as C).M(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "kind": "method", - "name": "(method) I.M(): void", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "M", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "contextSpan": { - "start": 18, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 80, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) I.M(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "M", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "kind": "method", - "name": "(method) C.M(): void", - "textSpan": { - "start": 59, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "M", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 59, - "length": 7 - } - }, - "references": [ - { - "textSpan": { - "start": 59, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "contextSpan": { - "start": 59, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 95, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionInterfaceImplementation.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) C.M(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "M", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionOverloads.baseline.jsonc b/tests/baselines/reference/isDefinitionOverloads.baseline.jsonc index c00476bf05c3d..a92f3a87f112e 100644 --- a/tests/baselines/reference/isDefinitionOverloads.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionOverloads.baseline.jsonc @@ -1,494 +1,321 @@ +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionOverloads.ts === -// function /*FIND ALL REFS*/[|f|](x: number): void; -// function [|f|](x: string): void; -// function [|f|](x: number | string) { } +// <|function /*FIND ALL REFS*/[|{| isDefinition: true |}f|](x: number): void;|> +// <|function [|{| isDefinition: true |}f|](x: string): void;|> +// <|function [|{| isWriteAccess: true, isDefinition: true |}f|](x: number | string) { }|> // // [|f|](1); // [|f|]("a"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "kind": "function", - "name": "function f(x: number): void (+1 overload)", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 29, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 58, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionOverloads.ts === + // <|function /*FIND ALL REFS*/[|f|](x: number): void;|> + // function f(x: string): void; + // function f(x: number | string) { } + // + // f(1); + // f("a"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(x: number): void (+1 overload)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionOverloads.ts === -// function [|f|](x: number): void; -// function /*FIND ALL REFS*/[|f|](x: string): void; -// function [|f|](x: number | string) { } +// <|function [|{| isDefinition: true |}f|](x: number): void;|> +// <|function /*FIND ALL REFS*/[|{| isDefinition: true |}f|](x: string): void;|> +// <|function [|{| isWriteAccess: true, isDefinition: true |}f|](x: number | string) { }|> // // [|f|](1); // [|f|]("a"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "kind": "function", - "name": "function f(x: number): void (+1 overload)", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 29, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 58, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionOverloads.ts === + // <|function [|f|](x: number): void;|> + // function /*FIND ALL REFS*/f(x: string): void; + // function f(x: number | string) { } + // + // f(1); + // f("a"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(x: number): void (+1 overload)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionOverloads.ts === -// function [|f|](x: number): void; -// function [|f|](x: string): void; -// function /*FIND ALL REFS*/[|f|](x: number | string) { } +// <|function [|{| isDefinition: true |}f|](x: number): void;|> +// <|function [|{| isDefinition: true |}f|](x: string): void;|> +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|](x: number | string) { }|> // // [|f|](1); // [|f|]("a"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "kind": "function", - "name": "function f(x: number): void (+1 overload)", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 29, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "contextSpan": { - "start": 58, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 94, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionOverloads.ts === + // <|function [|f|](x: number): void;|> + // function f(x: string): void; + // function /*FIND ALL REFS*/f(x: number | string) { } + // + // f(1); + // f("a"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(x: number): void (+1 overload)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionShorthandProperty.baseline.jsonc b/tests/baselines/reference/isDefinitionShorthandProperty.baseline.jsonc index d2a1ceca58d37..d62ac1d97bb18 100644 --- a/tests/baselines/reference/isDefinitionShorthandProperty.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionShorthandProperty.baseline.jsonc @@ -1,295 +1,191 @@ +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === -// const /*FIND ALL REFS*/[|x|] = 1; -// const y: { x: number } = { [|x|] }; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|] = 1;|> +// const y: { x: number } = { [|{| isWriteAccess: true |}x|] }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "kind": "const", - "name": "const x: 1", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === + // <|const /*FIND ALL REFS*/[|x|] = 1;|> + // const y: { x: number } = { x }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === // const x = 1; -// const y: { /*FIND ALL REFS*/[|x|]: number } = { [|x|] }; +// const y: { /*FIND ALL REFS*/<|[|{| isDefinition: true |}x|]: number|> } = { [|{| isWriteAccess: true |}x|] }; + + // === Definitions === + // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === + // const x = 1; + // const y: { /*FIND ALL REFS*/<|[|x|]: number|> } = { x }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "contextSpan": { - "start": 24, - "length": 9 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === -// const [|x|] = 1; -// const y: { [|x|]: number } = { /*FIND ALL REFS*/[|x|] }; +// <|const [|{| defId: 0, isWriteAccess: true |}x|] = 1;|> +// const y: { <|[|{| defId: 1 |}x|]: number|> } = { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}x|] }; + + // === Definitions === + // === /tests/cases/fourslash/isDefinitionShorthandProperty.ts === + // <|const [|{| defId: 0 |}x|] = 1;|> + // const y: { <|[|{| defId: 1 |}x|]: number|> } = { /*FIND ALL REFS*/x }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "kind": "const", - "name": "const x: 1", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "contextSpan": { - "start": 0, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "kind": "property", - "name": "(property) x: number", - "textSpan": { - "start": 24, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "contextSpan": { - "start": 24, - "length": 9 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 40, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionShorthandProperty.ts", - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionSingleImport.baseline.jsonc b/tests/baselines/reference/isDefinitionSingleImport.baseline.jsonc index 038f5a5c9eaad..177a5647f80c8 100644 --- a/tests/baselines/reference/isDefinitionSingleImport.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionSingleImport.baseline.jsonc @@ -1,345 +1,265 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|]() {}|> + // === /tests/cases/fourslash/b.ts === -// import { [|f|] } from "./a"; +// <|import { [|{| defId: 1, isWriteAccess: true |}f|] } from "./a";|> -// === /tests/cases/fourslash/a.ts === -// export function /*FIND ALL REFS*/[|f|]() {} + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}f|]() {}|> + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}f|] } from "./a";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { /*FIND ALL REFS*/[|f|] } from "./a"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|] } from "./a";|> // === /tests/cases/fourslash/a.ts === -// export function [|f|]() {} +// <|export function [|{| defId: 1, isWriteAccess: true |}f|]() {}|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}f|] } from "./a";|> + + // === /tests/cases/fourslash/a.ts === + // <|export function [|{| defId: 1 |}f|]() {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/isDefinitionSingleReference.baseline.jsonc b/tests/baselines/reference/isDefinitionSingleReference.baseline.jsonc index 5a9817cb7a8a1..885a8e3ee169c 100644 --- a/tests/baselines/reference/isDefinitionSingleReference.baseline.jsonc +++ b/tests/baselines/reference/isDefinitionSingleReference.baseline.jsonc @@ -1,161 +1,109 @@ +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionSingleReference.ts === -// function /*FIND ALL REFS*/[|f|]() {} +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|]() {}|> // [|f|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionSingleReference.ts === + // <|function /*FIND ALL REFS*/[|f|]() {}|> + // f(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/isDefinitionSingleReference.ts === -// function [|f|]() {} +// <|function [|{| isWriteAccess: true |}f|]() {}|> // /*FIND ALL REFS*/[|f|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/isDefinitionSingleReference.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/isDefinitionSingleReference.ts === + // <|function [|f|]() {}|> + // /*FIND ALL REFS*/f(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/javaScriptClass2.baseline.jsonc b/tests/baselines/reference/javaScriptClass2.baseline.jsonc new file mode 100644 index 0000000000000..e943253c4dcd0 --- /dev/null +++ b/tests/baselines/reference/javaScriptClass2.baseline.jsonc @@ -0,0 +1,53 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// <|this./*RENAME*/[|unionRENAME|] = 'foo';|> +// <|this.[|unionRENAME|] = 100;|> +// } +// method() { return this.[|unionRENAME|]; } +// } +// var x = new Foo(); +// x.[|unionRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// <|this.[|unionRENAME|] = 'foo';|> +// <|this./*RENAME*/[|unionRENAME|] = 100;|> +// } +// method() { return this.[|unionRENAME|]; } +// } +// var x = new Foo(); +// x.[|unionRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// <|this.[|unionRENAME|] = 'foo';|> +// <|this.[|unionRENAME|] = 100;|> +// } +// method() { return this./*RENAME*/[|unionRENAME|]; } +// } +// var x = new Foo(); +// x.[|unionRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// <|this.[|unionRENAME|] = 'foo';|> +// <|this.[|unionRENAME|] = 100;|> +// } +// method() { return this.[|unionRENAME|]; } +// } +// var x = new Foo(); +// x./*RENAME*/[|unionRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/javaScriptClass3.baseline.jsonc b/tests/baselines/reference/javaScriptClass3.baseline.jsonc new file mode 100644 index 0000000000000..4a74a23a5abb7 --- /dev/null +++ b/tests/baselines/reference/javaScriptClass3.baseline.jsonc @@ -0,0 +1,53 @@ +// === goToDefinition === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// <|this.[|alpha|] = 10;|> +// this.beta = 'gamma'; +// } +// method() { return this.alpha; } +// } +// var x = new Foo(); +// x.alpha/*GOTO DEF*/; +// x.beta; + + // === Details === + [ + { + "kind": "property", + "name": "alpha", + "containerName": "Foo", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/Foo.js === +// class Foo { +// constructor() { +// this.alpha = 10; +// <|this.[|beta|] = 'gamma';|> +// } +// method() { return this.alpha; } +// } +// var x = new Foo(); +// x.alpha; +// x.beta/*GOTO DEF*/; + + // === Details === + [ + { + "kind": "property", + "name": "beta", + "containerName": "Foo", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsDocSee1.baseline.jsonc b/tests/baselines/reference/jsDocSee1.baseline.jsonc new file mode 100644 index 0000000000000..1998c8e3301a9 --- /dev/null +++ b/tests/baselines/reference/jsDocSee1.baseline.jsonc @@ -0,0 +1,177 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee1.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** @see {/*GOTO DEF POS*/Foo} foooo*/ +// const a = "" +// /** @see {NS.Bar} ns.bar*/ +// const b = "" +// /** @see Foo f1*/ +// const c = "" +// /** @see NS.Bar ns.bar*/ +// const d = "" +// /** @see d dd*/ +// const e = "" + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee1.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// <|export interface [|Bar|] { +// baz: Foo +// }|> +// } +// /** @see {Foo} foooo*/ +// const a = "" +// /** @see {NS./*GOTO DEF POS*/Bar} ns.bar*/ +// const b = "" +// /** @see Foo f1*/ +// const c = "" +// /** @see NS.Bar ns.bar*/ +// const d = "" +// /** @see d dd*/ +// const e = "" + + // === Details === + [ + { + "kind": "interface", + "name": "Bar", + "containerName": "NS", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee1.ts === +// <|interface [|Foo|] { +// foo: string +// }|> +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** @see {Foo} foooo*/ +// const a = "" +// /** @see {NS.Bar} ns.bar*/ +// const b = "" +// /** @see /*GOTO DEF POS*/Foo f1*/ +// const c = "" +// /** @see NS.Bar ns.bar*/ +// const d = "" +// /** @see d dd*/ +// const e = "" + + // === Details === + [ + { + "kind": "interface", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee1.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// <|export interface [|Bar|] { +// baz: Foo +// }|> +// } +// /** @see {Foo} foooo*/ +// const a = "" +// /** @see {NS.Bar} ns.bar*/ +// const b = "" +// /** @see Foo f1*/ +// const c = "" +// /** @see NS./*GOTO DEF POS*/Bar ns.bar*/ +// const d = "" +// /** @see d dd*/ +// const e = "" + + // === Details === + [ + { + "kind": "interface", + "name": "Bar", + "containerName": "NS", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee1.ts === +// interface Foo { +// foo: string +// } +// namespace NS { +// export interface Bar { +// baz: Foo +// } +// } +// /** @see {Foo} foooo*/ +// const a = "" +// /** @see {NS.Bar} ns.bar*/ +// const b = "" +// /** @see Foo f1*/ +// const c = "" +// /** @see NS.Bar ns.bar*/ +// <|const [|d|] = ""|> +// /** @see /*GOTO DEF POS*/d dd*/ +// const e = "" + + // === Details === + [ + { + "kind": "const", + "name": "d", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsDocSee2.baseline.jsonc b/tests/baselines/reference/jsDocSee2.baseline.jsonc new file mode 100644 index 0000000000000..75288fe162a4c --- /dev/null +++ b/tests/baselines/reference/jsDocSee2.baseline.jsonc @@ -0,0 +1,143 @@ +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {/*GOTO DEF*/foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {/*GOTO DEF*/@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see /*GOTO DEF*/foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see /*GOTO DEF*/@bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// <|const [|d|] = ""|> +// /** @see {/*GOTO DEF*/d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + // === Details === + [ + { + "kind": "const", + "name": "d", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see /*GOTO DEF*/@@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{fff} partial reference */ +// const g = "" + + + +// === goToDefinition === +// === /tests/cases/fourslash/jsDocSee2.ts === +// /** @see {foooo} unknown reference*/ +// const a = "" +// /** @see {@bar} invalid tag*/ +// const b = "" +// /** @see foooo unknown reference without brace*/ +// const c = "" +// /** @see @bar invalid tag without brace*/ +// const d = "" +// /** @see {d@fff} partial reference */ +// const e = "" +// /** @see @@@@@@ total invalid tag*/ +// const f = "" +// /** @see d@{/*GOTO DEF*/fff} partial reference */ +// const g = "" \ No newline at end of file diff --git a/tests/baselines/reference/jsDocSee3.baseline.jsonc b/tests/baselines/reference/jsDocSee3.baseline.jsonc new file mode 100644 index 0000000000000..cf3b0a8b34f55 --- /dev/null +++ b/tests/baselines/reference/jsDocSee3.baseline.jsonc @@ -0,0 +1,22 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee3.ts === +// function foo (a: string) { +// /** +// * @see {/*GOTO DEF POS*/a} +// */ +// function bar (<|[|a|]: string|>) { +// } +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "a", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsDocSee4.baseline.jsonc b/tests/baselines/reference/jsDocSee4.baseline.jsonc new file mode 100644 index 0000000000000..930e6bab7803b --- /dev/null +++ b/tests/baselines/reference/jsDocSee4.baseline.jsonc @@ -0,0 +1,99 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee4.ts === +// <|class [|A|] { +// foo () { } +// }|> +// declare const a: A; +// /** +// * @see {/*GOTO DEF POS*/A#foo} +// */ +// const t1 = 1 +// /** +// * @see {a.foo()} +// */ +// const t2 = 1 +// /** +// * @see {@link a.foo()} +// */ +// const t3 = 1 + + // === Details === + [ + { + "kind": "class", + "name": "A", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee4.ts === +// class A { +// foo () { } +// } +// <|declare const [|a|]: A;|> +// /** +// * @see {A#foo} +// */ +// const t1 = 1 +// /** +// * @see {/*GOTO DEF POS*/a.foo()} +// */ +// const t2 = 1 +// /** +// * @see {@link a.foo()} +// */ +// const t3 = 1 + + // === Details === + [ + { + "kind": "const", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocSee4.ts === +// class A { +// foo () { } +// } +// <|declare const [|a|]: A;|> +// /** +// * @see {A#foo} +// */ +// const t1 = 1 +// /** +// * @see {a.foo()} +// */ +// const t2 = 1 +// /** +// * @see {@link /*GOTO DEF POS*/a.foo()} +// */ +// const t3 = 1 + + // === Details === + [ + { + "kind": "const", + "name": "a", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsDocSee_rename1.baseline.jsonc b/tests/baselines/reference/jsDocSee_rename1.baseline.jsonc new file mode 100644 index 0000000000000..5e6b368b8c85a --- /dev/null +++ b/tests/baselines/reference/jsDocSee_rename1.baseline.jsonc @@ -0,0 +1,33 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/jsDocSee_rename1.ts === +// <|interface /*RENAME*/[|ARENAME|] {}|> +// /** +// * @see {[|ARENAME|]} +// */ +// declare const a: [|ARENAME|] + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/jsDocSee_rename1.ts === +// <|interface [|ARENAME|] {}|> +// /** +// * @see {/*RENAME*/[|ARENAME|]} +// */ +// declare const a: [|ARENAME|] + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/jsDocSee_rename1.ts === +// <|interface [|ARENAME|] {}|> +// /** +// * @see {[|ARENAME|]} +// */ +// declare const a: /*RENAME*/[|ARENAME|] \ No newline at end of file diff --git a/tests/baselines/reference/jsDocServices.baseline.jsonc b/tests/baselines/reference/jsDocServices.baseline.jsonc index a3f2f0e0198eb..20a365d29a213 100644 --- a/tests/baselines/reference/jsDocServices.baseline.jsonc +++ b/tests/baselines/reference/jsDocServices.baseline.jsonc @@ -1,284 +1,331 @@ +// === findAllReferences === // === /tests/cases/fourslash/jsDocServices.ts === // interface I {} // // /** // * @param /*FIND ALL REFS*/[|foo|] I pity the foo // */ -// function f([|foo|]: I) { +// function f(<|[|{| isWriteAccess: true |}foo|]: I|>) { // return [|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "kind": "parameter", - "name": "(parameter) foo: I", - "textSpan": { - "start": 64, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 64, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "contextSpan": { - "start": 64, - "length": 6 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 85, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/jsDocServices.ts === + // interface I {} + // + // /** + // * @param /*FIND ALL REFS*/foo I pity the foo + // */ + // function f(<|[|foo|]: I|>) { + // return foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) foo: I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/jsDocServices.ts === // interface I {} // // /** // * @param [|foo|] I pity the foo // */ -// function f(/*FIND ALL REFS*/[|foo|]: I) { +// function f(/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}foo|]: I|>) { // return [|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "kind": "parameter", - "name": "(parameter) foo: I", - "textSpan": { - "start": 64, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 64, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "contextSpan": { - "start": 64, - "length": 6 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 85, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/jsDocServices.ts === + // interface I {} + // + // /** + // * @param foo I pity the foo + // */ + // function f(/*FIND ALL REFS*/<|[|foo|]: I|>) { + // return foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) foo: I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/jsDocServices.ts === // interface I {} // // /** // * @param [|foo|] I pity the foo // */ -// function f([|foo|]: I) { +// function f(<|[|{| isWriteAccess: true |}foo|]: I|>) { // return /*FIND ALL REFS*/[|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "kind": "parameter", - "name": "(parameter) foo: I", - "textSpan": { - "start": 64, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 64, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "contextSpan": { - "start": 64, - "length": 6 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 85, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/jsDocServices.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/jsDocServices.ts === + // interface I {} + // + // /** + // * @param foo I pity the foo + // */ + // function f(<|[|foo|]: I|>) { + // return /*FIND ALL REFS*/foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) foo: I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param /*RENAME*/[|fooRENAME|] I pity the foo +// */ +// function f(<|[|fooRENAME|]: I|>) { +// return [|fooRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param [|fooRENAME|] I pity the foo +// */ +// function f(/*RENAME*/<|[|fooRENAME|]: I|>) { +// return [|fooRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param [|fooRENAME|] I pity the foo +// */ +// function f(<|[|fooRENAME|]: I|>) { +// return /*RENAME*/[|fooRENAME|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param /*HIGHLIGHTS*/[|{| kind: "reference" |}foo|] I pity the foo +// */ +// function f(<|[|{| kind: "writtenReference" |}foo|]: I|>) { +// return [|{| kind: "reference" |}foo|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param [|{| kind: "reference" |}foo|] I pity the foo +// */ +// function f(/*HIGHLIGHTS*/<|[|{| kind: "writtenReference" |}foo|]: I|>) { +// return [|{| kind: "reference" |}foo|]; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param [|{| kind: "reference" |}foo|] I pity the foo +// */ +// function f(<|[|{| kind: "writtenReference" |}foo|]: I|>) { +// return /*HIGHLIGHTS*/[|{| kind: "reference" |}foo|]; +// } + + + +// === goToType === +// === /tests/cases/fourslash/jsDocServices.ts === +// <|interface [|I|] {}|> +// +// /** +// * @param /*GOTO TYPE*/foo I pity the foo +// */ +// function f(foo: I) { +// return foo; +// } + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/jsDocServices.ts === +// interface I {} +// +// /** +// * @param /*GOTO DEF POS*/foo I pity the foo +// */ +// function f(<|[|foo|]: I|>) { +// return foo; +// } + + // === Details === + [ + { + "kind": "parameter", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsObjectDefinePropertyRenameLocations.baseline.jsonc b/tests/baselines/reference/jsObjectDefinePropertyRenameLocations.baseline.jsonc new file mode 100644 index 0000000000000..72f16bdd2a7e0 --- /dev/null +++ b/tests/baselines/reference/jsObjectDefinePropertyRenameLocations.baseline.jsonc @@ -0,0 +1,39 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/index.js === +// var CircularList = (function () { +// var CircularList = function() {}; +// Object.defineProperty(CircularList.prototype, "/*RENAME*/[|maxLengthRENAME|]", { value: 0, writable: true }); +// CircularList.prototype.push = function (value) { +// // ... +// this.[|maxLengthRENAME|] + this.[|maxLengthRENAME|] +// } +// return CircularList; +// })() + + + +// === findRenameLocations === +// === /tests/cases/fourslash/index.js === +// var CircularList = (function () { +// var CircularList = function() {}; +// Object.defineProperty(CircularList.prototype, "[|maxLengthRENAME|]", { value: 0, writable: true }); +// CircularList.prototype.push = function (value) { +// // ... +// this./*RENAME*/[|maxLengthRENAME|] + this.[|maxLengthRENAME|] +// } +// return CircularList; +// })() + + + +// === findRenameLocations === +// === /tests/cases/fourslash/index.js === +// var CircularList = (function () { +// var CircularList = function() {}; +// Object.defineProperty(CircularList.prototype, "[|maxLengthRENAME|]", { value: 0, writable: true }); +// CircularList.prototype.push = function (value) { +// // ... +// this.[|maxLengthRENAME|] + this./*RENAME*/[|maxLengthRENAME|] +// } +// return CircularList; +// })() \ No newline at end of file diff --git a/tests/baselines/reference/jsdocCallbackTagRename01.baseline.jsonc b/tests/baselines/reference/jsdocCallbackTagRename01.baseline.jsonc new file mode 100644 index 0000000000000..c7a4e64561948 --- /dev/null +++ b/tests/baselines/reference/jsdocCallbackTagRename01.baseline.jsonc @@ -0,0 +1,13 @@ +// === findRenameLocations === +// @findInStrings: false +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocCallback.js === +// +// /** +// * <|@callback /*RENAME*/[|FooCallbackRENAME|] +// * @param {string} eventName - Rename should work +// |>*/ +// +// /** @type {[|FooCallbackRENAME|]} */ +// var t; \ No newline at end of file diff --git a/tests/baselines/reference/jsdocLink_findAllReferences1.baseline.jsonc b/tests/baselines/reference/jsdocLink_findAllReferences1.baseline.jsonc index 46f1973b866b9..580b435326e2a 100644 --- a/tests/baselines/reference/jsdocLink_findAllReferences1.baseline.jsonc +++ b/tests/baselines/reference/jsdocLink_findAllReferences1.baseline.jsonc @@ -1,73 +1,39 @@ +// === findAllReferences === // === /tests/cases/fourslash/jsdocLink_findAllReferences1.ts === -// interface [|A|]/*FIND ALL REFS*/ {} +// <|interface [|{| isWriteAccess: true, isDefinition: true |}A|]/*FIND ALL REFS*/ {}|> // /** // * {@link [|A|]()} is ok // */ // declare const a: [|A|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/jsdocLink_findAllReferences1.ts", - "kind": "interface", - "name": "interface A", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/jsdocLink_findAllReferences1.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/jsdocLink_findAllReferences1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/jsdocLink_findAllReferences1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/jsdocLink_findAllReferences1.ts === + // <|interface [|A|]/*FIND ALL REFS*/ {}|> + // /** + // * {@link A()} is ok + // */ + // declare const a: A + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface A", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocLink_rename1.baseline b/tests/baselines/reference/jsdocLink_rename1.baseline deleted file mode 100644 index 42d9421881cfd..0000000000000 --- a/tests/baselines/reference/jsdocLink_rename1.baseline +++ /dev/null @@ -1,7 +0,0 @@ -/*====== /tests/cases/fourslash/jsdocLink_rename1.ts ======*/ - -interface [|RENAME|] {} -/** - * {@link RENAME()} is ok - */ -declare const a: RENAME diff --git a/tests/baselines/reference/jsdocLink_rename1.baseline.jsonc b/tests/baselines/reference/jsdocLink_rename1.baseline.jsonc new file mode 100644 index 0000000000000..046d85d4236a4 --- /dev/null +++ b/tests/baselines/reference/jsdocLink_rename1.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/jsdocLink_rename1.ts === +// <|interface [|ARENAME|]/*RENAME*/ {}|> +// /** +// * {@link [|ARENAME|]()} is ok +// */ +// declare const a: [|ARENAME|] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocSatisfiesTagFindAllReferences.baseline.jsonc b/tests/baselines/reference/jsdocSatisfiesTagFindAllReferences.baseline.jsonc index c0188df554db4..0d7b9e1a5a17d 100644 --- a/tests/baselines/reference/jsdocSatisfiesTagFindAllReferences.baseline.jsonc +++ b/tests/baselines/reference/jsdocSatisfiesTagFindAllReferences.baseline.jsonc @@ -1,116 +1,95 @@ +// === findAllReferences === // === /a.js === // /** -// * @typedef {Object} [|T|] +// * <|@typedef {Object} [|{| isWriteAccess: true |}T|] // * @property {number} a -// */ +// |>*/ // // /** @satisfies {/*FIND ALL REFS*/[|T|]} comment */ // const foo = { a: 1 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.js", - "kind": "type", - "name": "type T = {\n a: number;\n}", - "textSpan": { - "start": 25, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 7, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 25, - "length": 1 - }, - "fileName": "/a.js", - "contextSpan": { - "start": 7, - "length": 45 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 72, - "length": 1 - }, - "fileName": "/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /a.js === + // /** + // * <|@typedef {Object} [|T|] + // * @property {number} a + // |>*/ + // + // /** @satisfies {/*FIND ALL REFS*/T} comment */ + // const foo = { a: 1 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = {\n a: number;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocSatisfiesTagRename.baseline b/tests/baselines/reference/jsdocSatisfiesTagRename.baseline deleted file mode 100644 index 7e6ebcc931818..0000000000000 --- a/tests/baselines/reference/jsdocSatisfiesTagRename.baseline +++ /dev/null @@ -1,9 +0,0 @@ -/*====== /a.js ======*/ - -/** - * @typedef {Object} RENAME - * @property {number} a - */ - -/** @satisfies {[|RENAME|]} comment */ -const foo = { a: 1 }; diff --git a/tests/baselines/reference/jsdocSatisfiesTagRename.baseline.jsonc b/tests/baselines/reference/jsdocSatisfiesTagRename.baseline.jsonc new file mode 100644 index 0000000000000..c3b292ccc6a81 --- /dev/null +++ b/tests/baselines/reference/jsdocSatisfiesTagRename.baseline.jsonc @@ -0,0 +1,9 @@ +// === findRenameLocations === +// === /a.js === +// /** +// * <|@typedef {Object} [|TRENAME|] +// * @property {number} a +// |>*/ +// +// /** @satisfies {/*RENAME*/[|TRENAME|]} comment */ +// const foo = { a: 1 }; \ No newline at end of file diff --git a/tests/baselines/reference/jsdocThrowsTag_findAllReferences.baseline.jsonc b/tests/baselines/reference/jsdocThrowsTag_findAllReferences.baseline.jsonc index d9807e1c86066..01a0774816c6a 100644 --- a/tests/baselines/reference/jsdocThrowsTag_findAllReferences.baseline.jsonc +++ b/tests/baselines/reference/jsdocThrowsTag_findAllReferences.baseline.jsonc @@ -1,64 +1,39 @@ +// === findAllReferences === // === /tests/cases/fourslash/jsdocThrowsTag_findAllReferences.ts === -// class /*FIND ALL REFS*/[|E|] extends Error {} +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}E|] extends Error {}|> // /** // * @throws {[|E|]} // */ // function f() {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/jsdocThrowsTag_findAllReferences.ts", - "kind": "class", - "name": "class E", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/jsdocThrowsTag_findAllReferences.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/jsdocThrowsTag_findAllReferences.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/jsdocThrowsTag_findAllReferences.ts === + // <|class /*FIND ALL REFS*/[|E|] extends Error {}|> + // /** + // * @throws {E} + // */ + // function f() {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class E", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocThrowsTag_rename.baseline b/tests/baselines/reference/jsdocThrowsTag_rename.baseline deleted file mode 100644 index 8f8a2729314b1..0000000000000 --- a/tests/baselines/reference/jsdocThrowsTag_rename.baseline +++ /dev/null @@ -1,7 +0,0 @@ -/*====== /tests/cases/fourslash/jsdocThrowsTag_rename.ts ======*/ - -class [|RENAME|] extends Error {} -/** - * @throws {RENAME} - */ -function f() {} diff --git a/tests/baselines/reference/jsdocThrowsTag_rename.baseline.jsonc b/tests/baselines/reference/jsdocThrowsTag_rename.baseline.jsonc new file mode 100644 index 0000000000000..9104de5187a7e --- /dev/null +++ b/tests/baselines/reference/jsdocThrowsTag_rename.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/jsdocThrowsTag_rename.ts === +// <|class /*RENAME*/[|ERENAME|] extends Error {}|> +// /** +// * @throws {[|ERENAME|]} +// */ +// function f() {} \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagGoToDefinition.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagGoToDefinition.baseline.jsonc new file mode 100644 index 0000000000000..b3106294b173e --- /dev/null +++ b/tests/baselines/reference/jsdocTypedefTagGoToDefinition.baseline.jsonc @@ -0,0 +1,57 @@ +// === goToDefinition === +// === /tests/cases/fourslash/server/jsdocCompletion_typedef.js === +// /** +// * @typedef {Object} Person +// * @property {string} [|personName|] +// * @property {number} personAge +// */ +// +// /** +// * @typedef {{ animalName: string, animalAge: number }} Animal +// */ +// +// /** @type {Person} */ +// var person; person.personName/*GOTO DEF*/ +// +// /** @type {Animal} */ +// var animal; animal.animalName + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/server/jsdocCompletion_typedef.js === +// /** +// * @typedef {Object} Person +// * @property {string} personName +// * @property {number} personAge +// */ +// +// /** +// * @typedef {{ [|animalName|]: string, animalAge: number }} Animal +// */ +// +// /** @type {Person} */ +// var person; person.personName +// +// /** @type {Animal} */ +// var animal; animal.animalName/*GOTO DEF*/ + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagRename01.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagRename01.baseline.jsonc new file mode 100644 index 0000000000000..cc7a9dd643a29 --- /dev/null +++ b/tests/baselines/reference/jsdocTypedefTagRename01.baseline.jsonc @@ -0,0 +1,42 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form1.js === +// +// /** @typedef {(string | number)} */ +// <|var /*RENAME*/[|NumberLikeRENAME|];|> +// +// [|NumberLikeRENAME|] = 10; +// +// /** @type {[|NumberLikeRENAME|]} */ +// var numberLike; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form1.js === +// +// /** @typedef {(string | number)} */ +// <|var [|NumberLikeRENAME|];|> +// +// /*RENAME*/[|NumberLikeRENAME|] = 10; +// +// /** @type {[|NumberLikeRENAME|]} */ +// var numberLike; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form1.js === +// +// /** @typedef {(string | number)} */ +// <|var [|NumberLikeRENAME|];|> +// +// [|NumberLikeRENAME|] = 10; +// +// /** @type {/*RENAME*/[|NumberLikeRENAME|]} */ +// var numberLike; \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagRename02.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagRename02.baseline.jsonc new file mode 100644 index 0000000000000..dd9e2e17a5225 --- /dev/null +++ b/tests/baselines/reference/jsdocTypedefTagRename02.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form2.js === +// +// /** <|@typedef {(string | number)} /*RENAME*/[|NumberLikeRENAME|]|> */ +// +// /** @type {[|NumberLikeRENAME|]} */ +// var numberLike; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form2.js === +// +// /** <|@typedef {(string | number)} [|NumberLikeRENAME|]|> */ +// +// /** @type {/*RENAME*/[|NumberLikeRENAME|]} */ +// var numberLike; \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagRename03.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagRename03.baseline.jsonc new file mode 100644 index 0000000000000..60c01f1addb95 --- /dev/null +++ b/tests/baselines/reference/jsdocTypedefTagRename03.baseline.jsonc @@ -0,0 +1,31 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form3.js === +// +// /** +// * <|@typedef /*RENAME*/[|PersonRENAME|] +// * @type {Object} +// * @property {number} age +// * @property {string} name +// |>*/ +// +// /** @type {[|PersonRENAME|]} */ +// var person; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/server/jsDocTypedef_form3.js === +// +// /** +// * <|@typedef [|PersonRENAME|] +// * @type {Object} +// * @property {number} age +// * @property {string} name +// |>*/ +// +// /** @type {/*RENAME*/[|PersonRENAME|]} */ +// var person; \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagSemanticMeaning0.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagSemanticMeaning0.baseline.jsonc index e0e321e87a1ce..0fa8b5529c696 100644 --- a/tests/baselines/reference/jsdocTypedefTagSemanticMeaning0.baseline.jsonc +++ b/tests/baselines/reference/jsdocTypedefTagSemanticMeaning0.baseline.jsonc @@ -1,385 +1,274 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/a.js === +// /** /*FIND ALL REFS*/@typedef {number} T */ +// const T = 1; +// /** @type {T} */ +// const n = T; + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === -// /** @typedef {number} /*FIND ALL REFS*/[|T|] */ +// /** <|@typedef {number} /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|]|> */ // const T = 1; // /** @type {[|T|]} */ // const n = T; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 4, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 51, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} /*FIND ALL REFS*/T */ + // <|const [|T|] = 1;|> + // /** @type {T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} T */ -// /*FIND ALL REFS*/const [|T|] = 1; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}T|] = 1;|> // /** @type {T} */ // const n = [|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "const T: 1", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 27, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 27, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} T */ + // /*FIND ALL REFS*/<|const [|T|] = 1;|> + // /** @type {T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const T: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} T */ -// const /*FIND ALL REFS*/[|T|] = 1; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = 1;|> // /** @type {T} */ // const n = [|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "const T: 1", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 27, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 27, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} T */ + // <|const /*FIND ALL REFS*/[|T|] = 1;|> + // /** @type {T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const T: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === -// /** @typedef {number} [|T|] */ +// /** <|@typedef {number} [|{| isWriteAccess: true |}T|]|> */ // const T = 1; // /** @type {/*FIND ALL REFS*/[|T|]} */ // const n = T; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 4, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 51, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} T */ + // <|const [|T|] = 1;|> + // /** @type {/*FIND ALL REFS*/T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} T */ -// const [|T|] = 1; +// <|const [|{| isWriteAccess: true |}T|] = 1;|> // /** @type {T} */ // const n = /*FIND ALL REFS*/[|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "const T: 1", - "textSpan": { - "start": 33, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 27, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 27, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} T */ + // <|const [|T|] = 1;|> + // /** @type {T} */ + // const n = /*FIND ALL REFS*/T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const T: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagSemanticMeaning1.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagSemanticMeaning1.baseline.jsonc index 704354415bf2c..0082383c57611 100644 --- a/tests/baselines/reference/jsdocTypedefTagSemanticMeaning1.baseline.jsonc +++ b/tests/baselines/reference/jsdocTypedefTagSemanticMeaning1.baseline.jsonc @@ -1,461 +1,333 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} */ -// /*FIND ALL REFS*/const [|T|] = 1; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}T|] = 1;|> // /** @type {[|T|]} */ // const n = [|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number\nconst T: 1", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 25, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 25, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 65, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} */ + // /*FIND ALL REFS*/<|const [|T|] = 1;|> + // /** @type {T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number\nconst T: 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} */ -// const /*FIND ALL REFS*/[|T|] = 1; +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = 1;|> // /** @type {[|T|]} */ // const n = [|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number\nconst T: 1", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 25, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 25, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 65, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} */ + // <|const /*FIND ALL REFS*/[|T|] = 1;|> + // /** @type {T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number\nconst T: 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} */ -// const [|T|] = 1; +// <|const [|{| isWriteAccess: true |}T|] = 1;|> // /** @type {/*FIND ALL REFS*/[|T|]} */ // const n = [|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number\nconst T: 1", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 25, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 25, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 65, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} */ + // <|const [|T|] = 1;|> + // /** @type {/*FIND ALL REFS*/T} */ + // const n = T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number\nconst T: 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** @typedef {number} */ -// const [|T|] = 1; +// <|const [|{| isWriteAccess: true |}T|] = 1;|> // /** @type {[|T|]} */ // const n = /*FIND ALL REFS*/[|T|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "const", - "name": "type T = number\nconst T: 1", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 25, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 25, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 49, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 65, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** @typedef {number} */ + // <|const [|T|] = 1;|> + // /** @type {T} */ + // const n = /*FIND ALL REFS*/T; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "type T = number\nconst T: 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsdocTypedefTagServices.baseline.jsonc b/tests/baselines/reference/jsdocTypedefTagServices.baseline.jsonc index 1f11ca25b0133..3bce09e404490 100644 --- a/tests/baselines/reference/jsdocTypedefTagServices.baseline.jsonc +++ b/tests/baselines/reference/jsdocTypedefTagServices.baseline.jsonc @@ -1,239 +1,284 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** // * Doc comment -// * @typedef [|Product|] +// * <|@typedef [|{| isWriteAccess: true |}Product|] // * @property {string} title -// */ +// |>*/ // /** // * @type {/*FIND ALL REFS*/[|Product|]} // */ // const product = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "type", - "name": "type Product = {\n title: string;\n}", - "textSpan": { - "start": 31, - "length": 7 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Product", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "title", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 46 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 22, - "length": 46 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 85, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** + // * Doc comment + // * <|@typedef [|Product|] + // * @property {string} title + // |>*/ + // /** + // * @type {/*FIND ALL REFS*/Product} + // */ + // const product = null; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Product = {\n title: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Product", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "title", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // /** // * Doc comment -// * @typedef /*FIND ALL REFS*/[|Product|] +// * <|@typedef /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Product|] // * @property {string} title -// */ +// |>*/ // /** // * @type {[|Product|]} // */ // const product = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "type", - "name": "type Product = {\n title: string;\n}", - "textSpan": { - "start": 31, - "length": 7 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Product", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "title", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 22, - "length": 46 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 22, - "length": 46 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 85, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/a.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // /** + // * Doc comment + // * <|@typedef /*FIND ALL REFS*/[|Product|] + // * @property {string} title + // |>*/ + // /** + // * @type {Product} + // */ + // const product = null; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Product = {\n title: string;\n}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Product", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "title", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// /** +// * Doc comment +// * <|@typedef /*RENAME*/[|ProductRENAME|] +// * @property {string} title +// |>*/ +// /** +// * @type {[|ProductRENAME|]} +// */ +// const product = null; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// /** +// * Doc comment +// * <|@typedef [|ProductRENAME|] +// * @property {string} title +// |>*/ +// /** +// * @type {/*RENAME*/[|ProductRENAME|]} +// */ +// const product = null; + + + +// === documentHighlights === +// === /tests/cases/fourslash/a.js === +// /** +// * Doc comment +// * <|@typedef /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}Product|] +// * @property {string} title +// |>*/ +// /** +// * @type {[|{| kind: "reference" |}Product|]} +// */ +// const product = null; + + + +// === documentHighlights === +// === /tests/cases/fourslash/a.js === +// /** +// * Doc comment +// * <|@typedef [|{| kind: "writtenReference" |}Product|] +// * @property {string} title +// |>*/ +// /** +// * @type {/*HIGHLIGHTS*/[|{| kind: "reference" |}Product|]} +// */ +// const product = null; + + + +// === goToDefinition === +// === /tests/cases/fourslash/a.js === +// /** +// * Doc comment +// * <|@typedef [|Product|] +// * @property {string} title +// |>*/ +// /** +// * @type {/*GOTO DEF*/Product} +// */ +// const product = null; + + // === Details === + [ + { + "kind": "type", + "name": "Product", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/jsxSpreadReference.baseline.jsonc b/tests/baselines/reference/jsxSpreadReference.baseline.jsonc new file mode 100644 index 0000000000000..f42aa96386503 --- /dev/null +++ b/tests/baselines/reference/jsxSpreadReference.baseline.jsonc @@ -0,0 +1,70 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// name?: string; +// size?: number; +// } +// } +// +// <|var /*RENAME*/[|nnRENAME|]: {name?: string; size?: number};|> +// var x = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// name?: string; +// size?: number; +// } +// } +// +// <|var [|nnRENAME|]: {name?: string; size?: number};|> +// var x = ; + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// name?: string; +// size?: number; +// } +// } +// +// <|var [|nn|]: {name?: string; size?: number};|> +// var x = ; + + // === Details === + [ + { + "kind": "var", + "name": "nn", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/localGetReferences.baseline.jsonc b/tests/baselines/reference/localGetReferences.baseline.jsonc index da5280b609cb0..3add629082864 100644 --- a/tests/baselines/reference/localGetReferences.baseline.jsonc +++ b/tests/baselines/reference/localGetReferences.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// /*FIND ALL REFS*/var [|globalVar|]: number = 2; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -11,7 +12,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -27,7 +28,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -40,7 +41,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -52,7 +53,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -74,10 +75,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -124,161 +125,176 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // /*FIND ALL REFS*/<|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var /*FIND ALL REFS*/[|globalVar|]: number = 2; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -288,7 +304,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -304,7 +320,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -317,7 +333,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -329,7 +345,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -351,10 +367,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -401,157 +417,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var /*FIND ALL REFS*/[|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -559,7 +590,7 @@ // // class fooCls { // // References to static variable declared in a class. -// /*FIND ALL REFS*/static [|clsSVar|] = 1; +// /*FIND ALL REFS*/<|static [|{| isWriteAccess: true, isDefinition: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -567,7 +598,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -580,7 +611,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -595,7 +626,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -607,7 +638,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -626,7 +657,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -678,128 +709,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // /*FIND ALL REFS*/<|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -807,7 +898,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static /*FIND ALL REFS*/[|clsSVar|] = 1; +// <|static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -815,7 +906,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -828,7 +919,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -843,7 +934,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -855,7 +946,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -874,7 +965,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -926,128 +1017,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static /*FIND ALL REFS*/[|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -1057,12 +1208,12 @@ // // References to static variable declared in a class. // static clsSVar = 1; // // References to a variable declared in a class. -// /*FIND ALL REFS*/[|clsVar|] = 1; +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}clsVar|] = 1;|> // // constructor (public clsParam: number) { // //Increments // globalVar++; -// this.[|clsVar|]++; +// this.[|{| isWriteAccess: true |}clsVar|]++; // fooCls.clsSVar++; // // References to a class parameter. // this.clsParam++; @@ -1174,92 +1325,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsVar: number", - "textSpan": { - "start": 265, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 265, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 265, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 265, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 377, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // /*FIND ALL REFS*/<|[|clsVar|] = 1;|> + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -1271,13 +1518,13 @@ // // References to a variable declared in a class. // clsVar = 1; // -// constructor (/*FIND ALL REFS*/public [|clsParam|]: number) { +// constructor (/*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}clsParam|]: number|>) { // //Increments // globalVar++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. -// this.[|clsParam|]++; +// this.[|{| isWriteAccess: true |}clsParam|]++; // modTest.modVar++; // } // } @@ -1386,92 +1633,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsParam: number", - "textSpan": { - "start": 302, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 295, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 302, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 295, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 470, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (/*FIND ALL REFS*/<|public [|clsParam|]: number|>) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -1483,13 +1826,13 @@ // // References to a variable declared in a class. // clsVar = 1; // -// constructor (public /*FIND ALL REFS*/[|clsParam|]: number) { +// constructor (<|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}clsParam|]: number|>) { // //Increments // globalVar++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. -// this.[|clsParam|]++; +// this.[|{| isWriteAccess: true |}clsParam|]++; // modTest.modVar++; // } // } @@ -1598,96 +1941,192 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsParam: number", - "textSpan": { - "start": 302, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 295, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 302, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 295, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 470, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (<|public /*FIND ALL REFS*/[|clsParam|]: number|>) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -1697,7 +2136,7 @@ // // constructor (public clsParam: number) { // //Increments -// /*FIND ALL REFS*/[|globalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -1713,7 +2152,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -1726,7 +2165,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -1738,7 +2177,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -1760,10 +2199,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -1810,146 +2249,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // /*FIND ALL REFS*/globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -1959,12 +2424,12 @@ // // References to static variable declared in a class. // static clsSVar = 1; // // References to a variable declared in a class. -// [|clsVar|] = 1; +// <|[|{| isWriteAccess: true |}clsVar|] = 1;|> // // constructor (public clsParam: number) { // //Increments // globalVar++; -// this./*FIND ALL REFS*/[|clsVar|]++; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsVar|]++; // fooCls.clsSVar++; // // References to a class parameter. // this.clsParam++; @@ -2076,90 +2541,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsVar: number", - "textSpan": { - "start": 265, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 265, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 265, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 265, - "length": 11 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 377, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // <|[|clsVar|] = 1;|> + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this./*FIND ALL REFS*/clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -2167,7 +2730,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static [|clsSVar|] = 1; +// <|static [|{| isWriteAccess: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -2175,7 +2738,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls./*FIND ALL REFS*/[|clsSVar|]++; +// fooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -2188,7 +2751,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -2203,7 +2766,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -2215,7 +2778,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -2234,7 +2797,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -2286,122 +2849,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls./*FIND ALL REFS*/clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -2413,13 +3042,13 @@ // // References to a variable declared in a class. // clsVar = 1; // -// constructor (public [|clsParam|]: number) { +// constructor (<|public [|{| isWriteAccess: true |}clsParam|]: number|>) { // //Increments // globalVar++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. -// this./*FIND ALL REFS*/[|clsParam|]++; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsParam|]++; // modTest.modVar++; // } // } @@ -2528,90 +3157,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsParam: number", - "textSpan": { - "start": 302, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 295, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 302, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 295, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 470, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (<|public [|clsParam|]: number|>) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this./*FIND ALL REFS*/clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -2635,7 +3362,7 @@ // } // // // References to a function parameter. -// /*FIND ALL REFS*/function [|foo|](x: number) { +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -2647,7 +3374,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -2693,7 +3420,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -2738,145 +3465,196 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // /*FIND ALL REFS*/<|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -2900,7 +3678,7 @@ // } // // // References to a function parameter. -// function /*FIND ALL REFS*/[|foo|](x: number) { +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -2912,7 +3690,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -2958,7 +3736,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -3003,145 +3781,196 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function /*FIND ALL REFS*/[|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -3165,7 +3994,7 @@ // } // // // References to a function parameter. -// function foo(/*FIND ALL REFS*/[|x|]: number) { +// function foo(/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}x|]: number|>) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -3176,7 +4005,7 @@ // fnVar++; // // //Return -// return [|x|]++; +// return [|{| isWriteAccess: true |}x|]++; // } // // module modTest { @@ -3268,84 +4097,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) x: number", - "textSpan": { - "start": 569, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 569, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 569, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 569, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 774, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(/*FIND ALL REFS*/<|[|x|]: number|>) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -3371,13 +4296,13 @@ // // References to a function parameter. // function foo(x: number) { // // References to a variable declared in a function. -// /*FIND ALL REFS*/var [|fnVar|] = 1; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}fnVar|] = 1;|> // // //Increments // fooCls.clsSVar++; // globalVar++; // modTest.modVar++; -// [|fnVar|]++; +// [|{| isWriteAccess: true |}fnVar|]++; // // //Return // return x++; @@ -3472,84 +4397,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "local var", - "name": "(local var) fnVar: number", - "textSpan": { - "start": 646, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fnVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 642, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 646, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 642, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 740, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // /*FIND ALL REFS*/<|var [|fnVar|] = 1;|> + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local var", + "name": "(local var) fnVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fnVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -3575,13 +4596,13 @@ // // References to a function parameter. // function foo(x: number) { // // References to a variable declared in a function. -// var /*FIND ALL REFS*/[|fnVar|] = 1; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}fnVar|] = 1;|> // // //Increments // fooCls.clsSVar++; // globalVar++; // modTest.modVar++; -// [|fnVar|]++; +// [|{| isWriteAccess: true |}fnVar|]++; // // //Return // return x++; @@ -3676,84 +4697,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "local var", - "name": "(local var) fnVar: number", - "textSpan": { - "start": 646, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fnVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 642, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 646, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 642, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 740, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // <|var /*FIND ALL REFS*/[|fnVar|] = 1;|> + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local var", + "name": "(local var) fnVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fnVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -3761,7 +4878,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static [|clsSVar|] = 1; +// <|static [|{| isWriteAccess: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -3769,7 +4886,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -3782,7 +4899,7 @@ // var fnVar = 1; // // //Increments -// fooCls./*FIND ALL REFS*/[|clsSVar|]++; +// fooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -3797,7 +4914,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -3809,7 +4926,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -3828,7 +4945,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -3880,126 +4997,192 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls./*FIND ALL REFS*/clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -4009,7 +5192,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -4025,7 +5208,7 @@ // // //Increments // fooCls.clsSVar++; -// /*FIND ALL REFS*/[|globalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -4038,7 +5221,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -4050,7 +5233,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -4072,10 +5255,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -4122,146 +5305,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // /*FIND ALL REFS*/globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -4287,13 +5496,13 @@ // // References to a function parameter. // function foo(x: number) { // // References to a variable declared in a function. -// var [|fnVar|] = 1; +// <|var [|{| isWriteAccess: true |}fnVar|] = 1;|> // // //Increments // fooCls.clsSVar++; // globalVar++; // modTest.modVar++; -// /*FIND ALL REFS*/[|fnVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}fnVar|]++; // // //Return // return x++; @@ -4388,82 +5597,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "local var", - "name": "(local var) fnVar: number", - "textSpan": { - "start": 646, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fnVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 642, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 646, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 642, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 740, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // <|var [|fnVar|] = 1;|> + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // /*FIND ALL REFS*/fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "local var", + "name": "(local var) fnVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fnVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -4487,7 +5794,7 @@ // } // // // References to a function parameter. -// function foo([|x|]: number) { +// function foo(<|[|{| isWriteAccess: true |}x|]: number|>) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -4498,7 +5805,7 @@ // fnVar++; // // //Return -// return /*FIND ALL REFS*/[|x|]++; +// return /*FIND ALL REFS*/[|{| isWriteAccess: true |}x|]++; // } // // module modTest { @@ -4590,86 +5897,184 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) x: number", - "textSpan": { - "start": 569, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 569, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 569, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 569, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 774, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(<|[|x|]: number|>) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return /*FIND ALL REFS*/x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -4679,7 +6084,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -4695,7 +6100,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -4708,7 +6113,7 @@ // export var modVar:number; // // //Increments -// /*FIND ALL REFS*/[|globalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -4720,7 +6125,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -4742,10 +6147,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -4792,146 +6197,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // /*FIND ALL REFS*/globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -4939,7 +6370,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static [|clsSVar|] = 1; +// <|static [|{| isWriteAccess: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -4947,7 +6378,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -4960,7 +6391,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -4975,7 +6406,7 @@ // // //Increments // globalVar++; -// fooCls./*FIND ALL REFS*/[|clsSVar|]++; +// fooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -4987,7 +6418,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -5006,7 +6437,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -5058,122 +6489,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls./*FIND ALL REFS*/clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -5197,7 +6694,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -5209,7 +6706,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -5255,7 +6752,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -5300,138 +6797,196 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = /*FIND ALL REFS*/foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -5455,7 +7010,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -5467,7 +7022,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -5513,7 +7068,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -5558,142 +7113,200 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = /*FIND ALL REFS*/foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -5703,7 +7316,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -5719,7 +7332,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -5732,7 +7345,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -5744,7 +7357,7 @@ // static boo = foo; // // //Increments -// /*FIND ALL REFS*/[|globalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -5766,10 +7379,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -5816,146 +7429,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // /*FIND ALL REFS*/globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -5963,7 +7602,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static [|clsSVar|] = 1; +// <|static [|{| isWriteAccess: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -5971,7 +7610,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -5984,7 +7623,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -5999,7 +7638,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -6011,7 +7650,7 @@ // // //Increments // globalVar++; -// fooCls./*FIND ALL REFS*/[|clsSVar|]++; +// fooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -6030,7 +7669,7 @@ // foo(globalVar); // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -6082,122 +7721,188 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls./*FIND ALL REFS*/clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -6221,7 +7926,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -6233,7 +7938,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -6279,7 +7984,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -6324,142 +8029,200 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = /*FIND ALL REFS*/foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -6469,7 +8232,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -6485,7 +8248,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -6498,7 +8261,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -6510,7 +8273,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -6532,10 +8295,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -6582,146 +8345,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(/*FIND ALL REFS*/globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -6745,7 +8534,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -6757,7 +8546,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -6803,7 +8592,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = [|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -6848,142 +8637,200 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // /*FIND ALL REFS*/foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -6993,7 +8840,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -7009,7 +8856,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -7022,7 +8869,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -7034,7 +8881,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -7056,10 +8903,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -7106,146 +8953,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(/*FIND ALL REFS*/globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -7253,7 +9126,7 @@ // // class fooCls { // // References to static variable declared in a class. -// static [|clsSVar|] = 1; +// <|static [|{| isWriteAccess: true |}clsSVar|] = 1;|> // // References to a variable declared in a class. // clsVar = 1; // @@ -7261,7 +9134,7 @@ // //Increments // globalVar++; // this.clsVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // // References to a class parameter. // this.clsParam++; // modTest.modVar++; @@ -7274,7 +9147,7 @@ // var fnVar = 1; // // //Increments -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // globalVar++; // modTest.modVar++; // fnVar++; @@ -7289,7 +9162,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // // class testCls { @@ -7301,7 +9174,7 @@ // // //Increments // globalVar++; -// fooCls.[|clsSVar|]++; +// fooCls.[|{| isWriteAccess: true |}clsSVar|]++; // modVar++; // } // @@ -7320,7 +9193,7 @@ // foo(globalVar); // // //Increments -// fooCls./*FIND ALL REFS*/[|clsSVar|]++; +// fooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}clsSVar|]++; // modTest.modVar++; // globalVar = globalVar + globalVar; // @@ -7372,126 +9245,192 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "property", - "name": "(property) fooCls.clsSVar: number", - "textSpan": { - "start": 195, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "clsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 188, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 195, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 188, - "length": 19 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 402, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 686, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 889, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1075, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1353, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // <|static [|clsSVar|] = 1;|> + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls./*FIND ALL REFS*/clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) fooCls.clsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "clsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -7501,7 +9440,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -7517,7 +9456,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -7530,7 +9469,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -7542,7 +9481,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -7564,10 +9503,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// /*FIND ALL REFS*/[|globalVar|] = [|globalVar|] + [|globalVar|]; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -7614,150 +9553,176 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // /*FIND ALL REFS*/globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -7767,7 +9732,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -7783,7 +9748,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -7796,7 +9761,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -7808,7 +9773,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -7830,10 +9795,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = /*FIND ALL REFS*/[|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = /*FIND ALL REFS*/[|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -7880,150 +9845,176 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = /*FIND ALL REFS*/globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -8033,7 +10024,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -8049,7 +10040,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -8062,7 +10053,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -8074,7 +10065,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -8096,10 +10087,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + /*FIND ALL REFS*/[|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + /*FIND ALL REFS*/[|globalVar|]; // // //ETC - Other cases -// [|globalVar|] = 3; +// [|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -8146,150 +10137,176 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + /*FIND ALL REFS*/globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. -// var [|globalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}globalVar|]: number = 2;|> // // class fooCls { // // References to static variable declared in a class. @@ -8299,7 +10316,7 @@ // // constructor (public clsParam: number) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // this.clsVar++; // fooCls.clsSVar++; // // References to a class parameter. @@ -8315,7 +10332,7 @@ // // //Increments // fooCls.clsSVar++; -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // modTest.modVar++; // fnVar++; // @@ -8328,7 +10345,7 @@ // export var modVar:number; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // @@ -8340,7 +10357,7 @@ // static boo = foo; // // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // fooCls.clsSVar++; // modVar++; // } @@ -8362,10 +10379,10 @@ // //Increments // fooCls.clsSVar++; // modTest.modVar++; -// [|globalVar|] = [|globalVar|] + [|globalVar|]; +// [|{| isWriteAccess: true |}globalVar|] = [|globalVar|] + [|globalVar|]; // // //ETC - Other cases -// /*FIND ALL REFS*/[|globalVar|] = 3; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|] = 3; // // References to illegal assignment. // foo = foo + 1; // err = err++; @@ -8412,146 +10429,172 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "var", - "name": "var globalVar: number", - "textSpan": { - "start": 87, - "length": 9 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 83, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 87, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 83, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 351, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 701, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 865, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1047, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1320, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1382, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1394, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1406, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1438, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // <|var [|globalVar|]: number = 2;|> + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // /*FIND ALL REFS*/globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var globalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -8575,7 +10618,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -8587,7 +10630,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -8633,7 +10676,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// /*FIND ALL REFS*/[|foo|] = [|foo|] + 1; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}foo|] = [|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -8678,138 +10721,196 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // /*FIND ALL REFS*/foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -8833,7 +10934,7 @@ // } // // // References to a function parameter. -// function [|foo|](x: number) { +// <|function [|{| isWriteAccess: true |}foo|](x: number) { // // References to a variable declared in a function. // var fnVar = 1; // @@ -8845,7 +10946,7 @@ // // //Return // return x++; -// } +// }|> // // module modTest { // //Declare @@ -8891,7 +10992,7 @@ // //ETC - Other cases // globalVar = 3; // // References to illegal assignment. -// [|foo|] = /*FIND ALL REFS*/[|foo|] + 1; +// [|{| isWriteAccess: true |}foo|] = /*FIND ALL REFS*/[|foo|] + 1; // err = err++; // // //Shadowed fn Parameter @@ -8936,138 +11037,196 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "function", - "name": "function foo(x: number): number", - "textSpan": { - "start": 565, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 556, - "length": 224 - } - }, - "references": [ - { - "textSpan": { - "start": 565, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 556, - "length": 224 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 956, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1012, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1150, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1316, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1490, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // <|function [|foo|](x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // }|> + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = /*FIND ALL REFS*/foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: number): number", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -9153,9 +11312,9 @@ // err = err++; // // //Shadowed fn Parameter -// function shdw(/*FIND ALL REFS*/[|globalVar|]: number) { +// function shdw(/*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}globalVar|]: number|>) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // return [|globalVar|]; // } // @@ -9194,93 +11353,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) globalVar: number", - "textSpan": { - "start": 1557, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1557, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 1557, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 1557, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 1599, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1623, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(/*FIND ALL REFS*/<|[|globalVar|]: number|>) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) globalVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -9366,9 +11612,9 @@ // err = err++; // // //Shadowed fn Parameter -// function shdw([|globalVar|]: number) { +// function shdw(<|[|{| isWriteAccess: true |}globalVar|]: number|>) { // //Increments -// /*FIND ALL REFS*/[|globalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}globalVar|]++; // return [|globalVar|]; // } // @@ -9407,90 +11653,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) globalVar: number", - "textSpan": { - "start": 1557, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1557, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 1557, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 1557, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1599, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1623, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(<|[|globalVar|]: number|>) { + // //Increments + // /*FIND ALL REFS*/globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) globalVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -9576,9 +11912,9 @@ // err = err++; // // //Shadowed fn Parameter -// function shdw([|globalVar|]: number) { +// function shdw(<|[|{| isWriteAccess: true |}globalVar|]: number|>) { // //Increments -// [|globalVar|]++; +// [|{| isWriteAccess: true |}globalVar|]++; // return /*FIND ALL REFS*/[|globalVar|]; // } // @@ -9617,90 +11953,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) globalVar: number", - "textSpan": { - "start": 1557, - "length": 9 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalVar", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 1557, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 1557, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "contextSpan": { - "start": 1557, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1599, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1623, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(<|[|globalVar|]: number|>) { + // //Increments + // globalVar++; + // return /*FIND ALL REFS*/globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(str) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) globalVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalVar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -9818,7 +12244,7 @@ // array.forEach( // // -// function(/*FIND ALL REFS*/[|str|]) { +// function(/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}str|]) { // // // @@ -9827,76 +12253,180 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) str: string", - "textSpan": { - "start": 2052, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "str", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 2052, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 2115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function(/*FIND ALL REFS*/[|str|]) { + // + // + // + // // Reference misses function parameter. + // return str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) str: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "str", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/localGetReferences_1.ts === // // Comment Refence Test: globalVar // // References to a variable declared in global. @@ -10014,7 +12544,7 @@ // array.forEach( // // -// function([|str|]) { +// function([|{| isWriteAccess: true |}str|]) { // // // @@ -10023,76 +12553,560 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "kind": "parameter", - "name": "(parameter) str: string", - "textSpan": { - "start": 2052, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "str", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 2052, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 2115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/localGetReferences_1.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/localGetReferences_1.ts === + // // Comment Refence Test: globalVar + // // References to a variable declared in global. + // var globalVar: number = 2; + // + // class fooCls { + // // References to static variable declared in a class. + // static clsSVar = 1; + // // References to a variable declared in a class. + // clsVar = 1; + // + // constructor (public clsParam: number) { + // //Increments + // globalVar++; + // this.clsVar++; + // fooCls.clsSVar++; + // // References to a class parameter. + // this.clsParam++; + // modTest.modVar++; + // } + // } + // + // // References to a function parameter. + // function foo(x: number) { + // // References to a variable declared in a function. + // var fnVar = 1; + // + // //Increments + // fooCls.clsSVar++; + // globalVar++; + // modTest.modVar++; + // fnVar++; + // + // //Return + // return x++; + // } + // + // module modTest { + // //Declare + // export var modVar:number; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // + // class testCls { + // static boo = foo; + // } + // + // function testFn(){ + // static boo = foo; + // + // //Increments + // globalVar++; + // fooCls.clsSVar++; + // modVar++; + // } + // + // module testMod { + // var boo = foo; + // } + // } + // + // //Type test + // var clsTest: fooCls; + // + // //Arguments + // // References to a class argument. + // clsTest = new fooCls(globalVar); + // // References to a function argument. + // foo(globalVar); + // + // //Increments + // fooCls.clsSVar++; + // modTest.modVar++; + // globalVar = globalVar + globalVar; + // + // //ETC - Other cases + // globalVar = 3; + // // References to illegal assignment. + // foo = foo + 1; + // err = err++; + // + // //Shadowed fn Parameter + // function shdw(globalVar: number) { + // //Increments + // globalVar++; + // return globalVar; + // } + // + // //Remotes + // //Type test + // var remoteclsTest: remotefooCls; + // + // //Arguments + // remoteclsTest = new remotefooCls(remoteglobalVar); + // remotefoo(remoteglobalVar); + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remotemodTest.remotemodVar++; + // remoteglobalVar = remoteglobalVar + remoteglobalVar; + // + // //ETC - Other cases + // remoteglobalVar = 3; + // + // //Find References misses method param + // var + // + // + // + // array = ["f", "o", "o"]; + // + // array.forEach( + // + // + // function([|str|]) { + // + // + // + // // Reference misses function parameter. + // return /*FIND ALL REFS*/str + " "; + // + // }); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) str: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "str", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] -undefined -undefined -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/localGetReferences_1.ts === +// // Comment Refence Test: g/*FIND ALL REFS*/lobalVar +// // References to a variable declared in global. +// var globalVar: number = 2; +// +// class fooCls { +// // References to static variable declared in a class. +// static clsSVar = 1; +// // References to a variable declared in a class. +// clsVar = 1; +// +// constructor (public clsParam: number) { +// //Increments +// globalVar++; +// this.clsVar++; +// fooCls.clsSVar++; +// // References to a class parameter. +// this.clsParam++; +// modTest.modVar++; +// } +// } +// +// // References to a function parameter. +// function foo(x: number) { +// // References to a variable declared in a function. +// var fnVar = 1; +// +// //Increments +// fooCls.clsSVar++; +// globalVar++; +// modTest.modVar++; +// fnVar++; +// +// //Return +// return x++; +// } +// +// module modTest { +// //Declare +// export var modVar:number; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// +// class testCls { +// static boo = foo; +// } +// +// function testFn(){ +// static boo = foo; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// } +// +// module testMod { +// var boo = foo; +// } +// } +// +// //Type test +// var clsTest: fooCls; +// +// //Arguments +// // References to a class argument. +// clsTest = new fooCls(globalVar); +// // References to a function argument. +// foo(globalVar); +// +// //Increments +// fooCls.clsSVar++; +// modTest.modVar++; +// globalVar = globalVar + globalVar; +// +// //ETC - Other cases +// globalVar = 3; +// // References to illegal assignment. +// foo = foo + 1; +// err = err++; +// +// //Shadowed fn Parameter +// function shdw(globalVar: number) { +// //Increments +// globalVar++; +// return globalVar; +// } +// +// //Remotes +// //Type test +// var remoteclsTest: remotefooCls; +// +// //Arguments +// remoteclsTest = new remotefooCls(remoteglobalVar); +// remotefoo(remoteglobalVar); +// +// //Increments +// remotefooCls.remoteclsSVar++; +// remotemodTest.remotemodVar++; +// remoteglobalVar = remoteglobalVar + remoteglobalVar; +// +// //ETC - Other cases +// remoteglobalVar = 3; +// +// //Find References misses method param +// var +// +// +// +// array = ["f", "o", "o"]; +// +// array.forEach( +// +// +// function(str) { +// +// +// +// // Reference misses function parameter. +// return str + " "; +// +// }); + + + +// === findAllReferences === +// === /tests/cases/fourslash/localGetReferences_1.ts === +// // Comment Refence Test: globalVar +// // References to a variable declared in global. +// var globalVar: number = 2; +// +// class fooCls { +// // References to static variable declared in a class. +// static clsSVar = 1; +// // References to a variable declared in a class. +// clsVar = 1; +// +// constructor (public clsParam: number) { +// //Increments +// globalVar++; +// this.clsVar++; +// fooCls.clsSVar++; +// // References to a class parameter. +// this.clsParam++; +// modTest.modVar++; +// } +// } +// +// // References to a function parameter. +// function foo(x: number) { +// // References to a variable declared in a function. +// var fnVar = 1; +// +// //Increments +// fooCls.clsSVar++; +// globalVar++; +// modTest.modVar++; +// fnVar++; +// +// //Return +// return x++; +// } +// +// module modTest { +// //Declare +// export var modVar:number; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// +// class testCls { +// static boo = foo; +// } +// +// function testFn(){ +// static boo = foo; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// } +// +// module testMod { +// var boo = foo; +// } +// } +// +// //Type test +// var clsTest: fooCls; +// +// //Arguments +// // References to a class argument. +// clsTest = new fooCls(globalVar); +// // References to a function argument. +// foo(globalVar); +// +// //Increments +// fooCls.clsSVar++; +// modTest.modVar++; +// globalVar = globalVar + globalVar; +// +// //ETC - Other cases +// globalVar = 3; +// // References to illegal assignment. +// foo = foo + 1; +// /*FIND ALL REFS*/err = err++; +// +// //Shadowed fn Parameter +// function shdw(globalVar: number) { +// //Increments +// globalVar++; +// return globalVar; +// } +// +// //Remotes +// //Type test +// var remoteclsTest: remotefooCls; +// +// //Arguments +// remoteclsTest = new remotefooCls(remoteglobalVar); +// remotefoo(remoteglobalVar); +// +// //Increments +// remotefooCls.remoteclsSVar++; +// remotemodTest.remotemodVar++; +// remoteglobalVar = remoteglobalVar + remoteglobalVar; +// +// //ETC - Other cases +// remoteglobalVar = 3; +// +// //Find References misses method param +// var +// +// +// +// array = ["f", "o", "o"]; +// +// array.forEach( +// +// +// function(str) { +// +// +// +// // Reference misses function parameter. +// return str + " "; +// +// }); + + + +// === findAllReferences === +// === /tests/cases/fourslash/localGetReferences_1.ts === +// // Comment Refence Test: globalVar +// // References to a variable declared in global. +// var globalVar: number = 2; +// +// class fooCls { +// // References to static variable declared in a class. +// static clsSVar = 1; +// // References to a variable declared in a class. +// clsVar = 1; +// +// constructor (public clsParam: number) { +// //Increments +// globalVar++; +// this.clsVar++; +// fooCls.clsSVar++; +// // References to a class parameter. +// this.clsParam++; +// modTest.modVar++; +// } +// } +// +// // References to a function parameter. +// function foo(x: number) { +// // References to a variable declared in a function. +// var fnVar = 1; +// +// //Increments +// fooCls.clsSVar++; +// globalVar++; +// modTest.modVar++; +// fnVar++; +// +// //Return +// return x++; +// } +// +// module modTest { +// //Declare +// export var modVar:number; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// +// class testCls { +// static boo = foo; +// } +// +// function testFn(){ +// static boo = foo; +// +// //Increments +// globalVar++; +// fooCls.clsSVar++; +// modVar++; +// } +// +// module testMod { +// var boo = foo; +// } +// } +// +// //Type test +// var clsTest: fooCls; +// +// //Arguments +// // References to a class argument. +// clsTest = new fooCls(globalVar); +// // References to a function argument. +// foo(globalVar); +// +// //Increments +// fooCls.clsSVar++; +// modTest.modVar++; +// globalVar = globalVar + globalVar; +// +// //ETC - Other cases +// globalVar = 3; +// // References to illegal assignment. +// foo = foo + 1; +// err = err++; +// /*FIND ALL REFS*/ +// //Shadowed fn Parameter +// function shdw(globalVar: number) { +// //Increments +// globalVar++; +// return globalVar; +// } +// +// //Remotes +// //Type test +// var remoteclsTest: remotefooCls; +// +// //Arguments +// remoteclsTest = new remotefooCls(remoteglobalVar); +// remotefoo(remoteglobalVar); +// +// //Increments +// remotefooCls.remoteclsSVar++; +// remotemodTest.remotemodVar++; +// remoteglobalVar = remoteglobalVar + remoteglobalVar; +// +// //ETC - Other cases +// remoteglobalVar = 3; +// +// //Find References misses method param +// var +// +// +// +// array = ["f", "o", "o"]; +// +// array.forEach( +// +// +// function(str) { +// +// +// +// // Reference misses function parameter. +// return str + " "; +// +// }); \ No newline at end of file diff --git a/tests/baselines/reference/occurrences01.baseline.jsonc b/tests/baselines/reference/occurrences01.baseline.jsonc new file mode 100644 index 0000000000000..414c3ca7a600c --- /dev/null +++ b/tests/baselines/reference/occurrences01.baseline.jsonc @@ -0,0 +1,81 @@ +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: /*HIGHLIGHTS*/[|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// /*HIGHLIGHTS*/[|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|]; +// [|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences01.ts === +// foo: [|{| kind: "none" |}switch|] (10) { +// [|{| kind: "none" |}case|] 1: +// [|{| kind: "none" |}case|] 2: +// [|{| kind: "none" |}case|] 3: +// [|{| kind: "none" |}break|]; +// /*HIGHLIGHTS*/[|{| kind: "none" |}break|] foo; +// continue; +// continue foo; +// } \ No newline at end of file diff --git a/tests/baselines/reference/occurrences02.baseline.jsonc b/tests/baselines/reference/occurrences02.baseline.jsonc new file mode 100644 index 0000000000000..54791f86754ad --- /dev/null +++ b/tests/baselines/reference/occurrences02.baseline.jsonc @@ -0,0 +1,29 @@ +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences02.ts === +// function /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences02.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof /*HIGHLIGHTS*/[|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences02.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// /*HIGHLIGHTS*/[|{| kind: "reference" |}f|]([|{| kind: "reference" |}f|]); +// } + + + +// === documentHighlights === +// === /tests/cases/fourslash/server/occurrences02.ts === +// function [|{| kind: "writtenReference" |}f|](x: typeof [|{| kind: "reference" |}f|]) { +// [|{| kind: "reference" |}f|](/*HIGHLIGHTS*/[|{| kind: "reference" |}f|]); +// } \ No newline at end of file diff --git a/tests/baselines/reference/processInvalidSyntax1.baseline b/tests/baselines/reference/processInvalidSyntax1.baseline deleted file mode 100644 index 01b9d40eb90f6..0000000000000 --- a/tests/baselines/reference/processInvalidSyntax1.baseline +++ /dev/null @@ -1,21 +0,0 @@ -/*====== /tests/cases/fourslash/decl.js ======*/ - -var RENAME = {}; - -/*====== /tests/cases/fourslash/unicode1.js ======*/ - -RENAME.𝒜 ; - -/*====== /tests/cases/fourslash/unicode2.js ======*/ - -RENAME.¬ ; - -/*====== /tests/cases/fourslash/unicode3.js ======*/ - -RENAME¬ - -/*====== /tests/cases/fourslash/forof.js ======*/ - -for (RENAME.prop of arr) { - -} diff --git a/tests/baselines/reference/processInvalidSyntax1.baseline.jsonc b/tests/baselines/reference/processInvalidSyntax1.baseline.jsonc new file mode 100644 index 0000000000000..fac7f66a178b9 --- /dev/null +++ b/tests/baselines/reference/processInvalidSyntax1.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/decl.js === +// <|var [|objRENAME|] = {};|> + +// === /tests/cases/fourslash/unicode1.js === +// [|objRENAME|].𝒜 ; + +// === /tests/cases/fourslash/unicode2.js === +// [|objRENAME|].¬ ; + +// === /tests/cases/fourslash/unicode3.js === +// [|objRENAME|]¬ + +// === /tests/cases/fourslash/forof.js === +// for ([|objRENAME|]/*RENAME*/.prop of arr) { +// +// } \ No newline at end of file diff --git a/tests/baselines/reference/proto.baseline.jsonc b/tests/baselines/reference/proto.baseline.jsonc new file mode 100644 index 0000000000000..9778292a5f868 --- /dev/null +++ b/tests/baselines/reference/proto.baseline.jsonc @@ -0,0 +1,21 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/proto.ts === +// module M { +// export interface __proto__ {} +// } +// <|var [|__proto__|]: M.__proto__;|> +// __proto__/*GOTO DEF POS*/ +// var fun: (__proto__: any) => boolean; + + // === Details === + [ + { + "kind": "var", + "name": "__proto__", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/qualifiedName_import-declaration-with-variable-entity-names.baseline.jsonc b/tests/baselines/reference/qualifiedName_import-declaration-with-variable-entity-names.baseline.jsonc new file mode 100644 index 0000000000000..87f37dee19a6e --- /dev/null +++ b/tests/baselines/reference/qualifiedName_import-declaration-with-variable-entity-names.baseline.jsonc @@ -0,0 +1,38 @@ +// === documentHighlights === +// === /tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts === +// module Alpha { +// <|export var [|{| kind: "writtenReference" |}x|] = 100;|> +// } +// +// module Beta { +// import p = Alpha./*HIGHLIGHTS*/[|{| kind: "reference" |}x|]; +// } +// +// var x = Alpha.[|{| kind: "reference" |}x|] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts === +// module Alpha { +// <|export var [|x|] = 100;|> +// } +// +// module Beta { +// import p = Alpha./*GOTO DEF POS*/x; +// } +// +// var x = Alpha.x + + // === Details === + [ + { + "kind": "var", + "name": "x", + "containerName": "Alpha", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoMeaning.baseline.jsonc b/tests/baselines/reference/quickInfoMeaning.baseline.jsonc new file mode 100644 index 0000000000000..0e5eda9f9362d --- /dev/null +++ b/tests/baselines/reference/quickInfoMeaning.baseline.jsonc @@ -0,0 +1,111 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.d.ts === +// <|declare const [|foo|]: number;|> +// declare module "foo_module" { +// interface I { x: number; y: number } +// export = I; +// } + +// === /tests/cases/fourslash/foo_user.ts === +// /// +// import foo = require("foo_module"); +// const x = foo/*GOTO DEF POS*/; +// const i: foo = { x: 1, y: 2 }; + + // === Details === + [ + { + "kind": "const", + "name": "foo", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/foo.d.ts === +// declare const foo: number; +// declare module "foo_module" { +// <|interface [|I|] { x: number; y: number }|> +// export = I; +// } + +// === /tests/cases/fourslash/foo_user.ts === +// /// +// import foo = require("foo_module"); +// const x = foo; +// const i: foo/*GOTO DEF POS*/ = { x: 1, y: 2 }; + + // === Details === + [ + { + "kind": "interface", + "name": "I", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/bar.d.ts === +// declare interface bar { x: number; y: number } +// declare module "bar_module" { +// <|const [|x|]: number;|> +// export = x; +// } + +// === /tests/cases/fourslash/bar_user.ts === +// /// +// import bar = require("bar_module"); +// const x = bar/*GOTO DEF POS*/; +// const i: bar = { x: 1, y: 2 }; + + // === Details === + [ + { + "kind": "const", + "name": "x", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/bar.d.ts === +// <|declare interface [|bar|] { x: number; y: number }|> +// declare module "bar_module" { +// const x: number; +// export = x; +// } + +// === /tests/cases/fourslash/bar_user.ts === +// /// +// import bar = require("bar_module"); +// const x = bar; +// const i: bar/*GOTO DEF POS*/ = { x: 1, y: 2 }; + + // === Details === + [ + { + "kind": "interface", + "name": "bar", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoUntypedModuleImport.baseline.jsonc b/tests/baselines/reference/quickInfoUntypedModuleImport.baseline.jsonc index 5a7dff7b2c9ed..786ea567a6600 100644 --- a/tests/baselines/reference/quickInfoUntypedModuleImport.baseline.jsonc +++ b/tests/baselines/reference/quickInfoUntypedModuleImport.baseline.jsonc @@ -1,162 +1,138 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// import /*FIND ALL REFS*/[|foo|] from "foo"; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|] from "foo";|> // [|foo|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 7, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 23, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|import /*FIND ALL REFS*/[|foo|] from "foo";|> + // foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// import foo from /*FIND ALL REFS*/"[|foo|]"; +// <|import foo from /*FIND ALL REFS*/"[|{| isInString: true |}foo|]";|> // foo(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "foo", - "textSpan": { - "start": 17, - "length": 3 - }, - "displayParts": [ - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": false, - "isInString": true - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // import foo from /*FIND ALL REFS*/"[|foo|]"; + // foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "foo", + "displayParts": [ + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// import [|foo|] from "foo"; +// <|import [|{| isWriteAccess: true |}foo|] from "foo";|> // /*FIND ALL REFS*/[|foo|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "alias", - "name": "import foo", - "textSpan": { - "start": 7, - "length": 3 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|import [|foo|] from "foo";|> + // /*FIND ALL REFS*/foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import foo", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/node_modules/foo/index.js === +// [||]{} + +// === /tests/cases/fourslash/a.ts === +// import foo from /*GOTO DEF POS*/"foo"; +// foo(); + + // === Details === + [ + { + "name": "foo", + "kind": "script", + "failedAliasResolution": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/a.ts === +// <|import /*GOTO DEF POS*/[|foo|] from "foo";|> +// foo(); + + // === Details === + [ + { + "kind": "alias", + "name": "foo", + "containerName": "", + "isLocal": true, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": true + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/reallyLargeFile.baseline.jsonc b/tests/baselines/reference/reallyLargeFile.baseline.jsonc new file mode 100644 index 0000000000000..0c6001a93e8cb --- /dev/null +++ b/tests/baselines/reference/reallyLargeFile.baseline.jsonc @@ -0,0 +1,583721 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/file.d.ts === +// <|namespace /*GOTO DEF POS*/[|Foo|] { +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// //// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// //// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// //// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// //// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// //// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// }|> + + // === Details === + [ + { + "kind": "module", + "name": "Foo", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referenceInParameterPropertyDeclaration.baseline.jsonc b/tests/baselines/reference/referenceInParameterPropertyDeclaration.baseline.jsonc index 3dfc3f97cb8ce..a8d78004921df 100644 --- a/tests/baselines/reference/referenceInParameterPropertyDeclaration.baseline.jsonc +++ b/tests/baselines/reference/referenceInParameterPropertyDeclaration.baseline.jsonc @@ -1,11 +1,12 @@ +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // class Foo { -// constructor(private /*FIND ALL REFS*/[|privateParam|]: number, +// constructor(<|private /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}privateParam|]: number|>, // public publicParam: string, // protected protectedParam: boolean) { // -// let localPrivate = [|privateParam|]; -// this.[|privateParam|] += 10; +// let localPrivate = [|{| defId: 1 |}privateParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}privateParam|] += 10; // // let localPublic = publicParam; // this.publicParam += " Hello!"; @@ -15,324 +16,258 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "property", - "name": "(property) Foo.privateParam: number", - "textSpan": { - "start": 36, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "privateParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 28, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 194, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // class Foo { + // constructor(<|<|private /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}privateParam|]|]: number|>|>, + // public publicParam: string, + // protected protectedParam: boolean) { + // + // let localPrivate = privateParam; + // this.privateParam += 10; + // + // let localPublic = publicParam; + // this.publicParam += " Hello!"; + // + // let localProtected = protectedParam; + // this.protectedParam = false; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.privateParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "privateParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "parameter", - "name": "(parameter) privateParam: number", - "textSpan": { - "start": 36, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "privateParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 167, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) privateParam: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "privateParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // class Foo { // constructor(private privateParam: number, -// public /*FIND ALL REFS*/[|publicParam|]: string, +// <|public /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}publicParam|]: string|>, // protected protectedParam: boolean) { // // let localPrivate = privateParam; // this.privateParam += 10; // -// let localPublic = [|publicParam|]; -// this.[|publicParam|] += " Hello!"; +// let localPublic = [|{| defId: 1 |}publicParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}publicParam|] += " Hello!"; // // let localProtected = protectedParam; // this.protectedParam = false; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "property", - "name": "(property) Foo.publicParam: string", - "textSpan": { - "start": 73, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "publicParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 66, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 267, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // class Foo { + // constructor(private privateParam: number, + // <|<|public /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}publicParam|]|]: string|>|>, + // protected protectedParam: boolean) { + // + // let localPrivate = privateParam; + // this.privateParam += 10; + // + // let localPublic = publicParam; + // this.publicParam += " Hello!"; + // + // let localProtected = protectedParam; + // this.protectedParam = false; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.publicParam: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "publicParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "parameter", - "name": "(parameter) publicParam: string", - "textSpan": { - "start": 73, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "publicParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 241, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) publicParam: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "publicParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file1.ts === // class Foo { // constructor(private privateParam: number, // public publicParam: string, -// protected /*FIND ALL REFS*/[|protectedParam|]: boolean) { +// <|protected /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}protectedParam|]: boolean|>) { // // let localPrivate = privateParam; // this.privateParam += 10; @@ -340,155 +275,119 @@ // let localPublic = publicParam; // this.publicParam += " Hello!"; // -// let localProtected = [|protectedParam|]; -// this.[|protectedParam|] = false; +// let localProtected = [|{| defId: 1 |}protectedParam|]; +// this.[|{| defId: 0, isWriteAccess: true |}protectedParam|] = false; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "property", - "name": "(property) Foo.protectedParam: boolean", - "textSpan": { - "start": 112, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "protectedParam", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 102, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 112, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "contextSpan": { - "start": 102, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 352, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file1.ts === + // class Foo { + // constructor(private privateParam: number, + // public publicParam: string, + // <|<|protected /*FIND ALL REFS*/[|{| contextId: 0, defId: 0 |}[|{| contextId: 1, defId: 1 |}protectedParam|]|]: boolean|>|>) { + // + // let localPrivate = privateParam; + // this.privateParam += 10; + // + // let localPublic = publicParam; + // this.publicParam += " Hello!"; + // + // let localProtected = protectedParam; + // this.protectedParam = false; + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.protectedParam: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "protectedParam", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file1.ts", - "kind": "parameter", - "name": "(parameter) protectedParam: boolean", - "textSpan": { - "start": 112, - "length": 14 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "protectedParam", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 102, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 323, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/file1.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) protectedParam: boolean", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "protectedParam", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referenceToClass.baseline.jsonc b/tests/baselines/reference/referenceToClass.baseline.jsonc index 287d9af148271..255fb4edd3b55 100644 --- a/tests/baselines/reference/referenceToClass.baseline.jsonc +++ b/tests/baselines/reference/referenceToClass.baseline.jsonc @@ -1,8 +1,9 @@ +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class /*FIND ALL REFS*/[|foo|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|] { // public n: [|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: [|foo|]; @@ -16,105 +17,54 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: [|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class /*FIND ALL REFS*/[|foo|] { + // public n: foo; + // public foo: number; + // }|> + // + // class bar { + // public n: foo; + // public k = new foo(); + // } + // + // module mod { + // var k: foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class [|foo|] { +// <|class [|{| isWriteAccess: true |}foo|] { // public n: /*FIND ALL REFS*/[|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: [|foo|]; @@ -128,99 +78,54 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: [|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class [|foo|] { + // public n: /*FIND ALL REFS*/foo; + // public foo: number; + // }|> + // + // class bar { + // public n: foo; + // public k = new foo(); + // } + // + // module mod { + // var k: foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class [|foo|] { +// <|class [|{| isWriteAccess: true |}foo|] { // public n: [|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: /*FIND ALL REFS*/[|foo|]; @@ -234,99 +139,54 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: [|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class [|foo|] { + // public n: foo; + // public foo: number; + // }|> + // + // class bar { + // public n: /*FIND ALL REFS*/foo; + // public k = new foo(); + // } + // + // module mod { + // var k: foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class [|foo|] { +// <|class [|{| isWriteAccess: true |}foo|] { // public n: [|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: [|foo|]; @@ -340,99 +200,54 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: [|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class [|foo|] { + // public n: foo; + // public foo: number; + // }|> + // + // class bar { + // public n: foo; + // public k = new /*FIND ALL REFS*/foo(); + // } + // + // module mod { + // var k: foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class [|foo|] { +// <|class [|{| isWriteAccess: true |}foo|] { // public n: [|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: [|foo|]; @@ -446,99 +261,54 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: [|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class [|foo|] { + // public n: foo; + // public foo: number; + // }|> + // + // class bar { + // public n: foo; + // public k = new foo(); + // } + // + // module mod { + // var k: /*FIND ALL REFS*/foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referenceToClass_1.ts === -// class [|foo|] { +// <|class [|{| isWriteAccess: true |}foo|] { // public n: [|foo|]; // public foo: number; -// } +// }|> // // class bar { // public n: [|foo|]; @@ -552,90 +322,42 @@ // === /tests/cases/fourslash/referenceToClass_2.ts === // var k: /*FIND ALL REFS*/[|foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "kind": "class", - "name": "class foo", - "textSpan": { - "start": 6, - "length": 3 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 56 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "contextSpan": { - "start": 0, - "length": 56 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 84, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 108, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 142, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 7, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referenceToClass_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referenceToClass_1.ts === + // <|class [|foo|] { + // public n: foo; + // public foo: number; + // }|> + // + // class bar { + // public n: foo; + // public k = new foo(); + // } + // + // module mod { + // var k: foo = null; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class foo", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referenceToEmptyObject.baseline.jsonc b/tests/baselines/reference/referenceToEmptyObject.baseline.jsonc index 0637a088a01e8..c614a2d5ba4aa 100644 --- a/tests/baselines/reference/referenceToEmptyObject.baseline.jsonc +++ b/tests/baselines/reference/referenceToEmptyObject.baseline.jsonc @@ -1 +1,3 @@ -[] \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/server/referenceToEmptyObject.ts === +// const obj = {}/*FIND ALL REFS*/; \ No newline at end of file diff --git a/tests/baselines/reference/references01.baseline.jsonc b/tests/baselines/reference/references01.baseline.jsonc index 8c36d099ecaff..493bf5a5c91e2 100644 --- a/tests/baselines/reference/references01.baseline.jsonc +++ b/tests/baselines/reference/references01.baseline.jsonc @@ -1,64 +1,39 @@ +// === findAllReferences === // === /referencesForGlobals_1.ts === -// class [|globalClass|] { +// <|class [|{| isWriteAccess: true |}globalClass|] { // public f() { } -// } +// }|> // === /referencesForGlobals_2.ts === // /// // var c = /*FIND ALL REFS*/[|globalClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/referencesForGlobals_1.ts", - "kind": "class", - "name": "class globalClass", - "textSpan": { - "start": 6, - "length": 11 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 11 - }, - "fileName": "/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 58, - "length": 11 - }, - "fileName": "/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /referencesForGlobals_1.ts === + // <|class [|globalClass|] { + // public f() { } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class globalClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesBloomFilters.baseline.jsonc b/tests/baselines/reference/referencesBloomFilters.baseline.jsonc index 64293ca758e62..92d3443afc7e6 100644 --- a/tests/baselines/reference/referencesBloomFilters.baseline.jsonc +++ b/tests/baselines/reference/referencesBloomFilters.baseline.jsonc @@ -1,111 +1,60 @@ -// === /tests/cases/fourslash/redeclaration.ts === -// container = { "[|searchProp|]" : 18 }; - +// === findAllReferences === // === /tests/cases/fourslash/declaration.ts === -// var container = { /*FIND ALL REFS*/[|searchProp|] : 1 }; +// var container = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}searchProp|] : 1|> }; + +// === /tests/cases/fourslash/expression.ts === +// function blah() { return (1 + 2 + container.[|searchProp|]()) === 2; }; // === /tests/cases/fourslash/stringIndexer.ts === // function blah2() { container["[|searchProp|]"] }; -// === /tests/cases/fourslash/expression.ts === -// function blah() { return (1 + 2 + container.[|searchProp|]()) === 2; }; +// === /tests/cases/fourslash/redeclaration.ts === +// container = { <|"[|{| isWriteAccess: true |}searchProp|]" : 18|> }; + + // === Definitions === + // === /tests/cases/fourslash/declaration.ts === + // var container = { /*FIND ALL REFS*/<|[|searchProp|] : 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/declaration.ts", - "kind": "property", - "name": "(property) searchProp: number", - "textSpan": { - "start": 18, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "searchProp", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/declaration.ts", - "contextSpan": { - "start": 18, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 44, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/expression.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/stringIndexer.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 15, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/redeclaration.ts", - "contextSpan": { - "start": 14, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) searchProp: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "searchProp", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesBloomFilters2.baseline.jsonc b/tests/baselines/reference/referencesBloomFilters2.baseline.jsonc index 21d5d4a50e9d0..0f5b7be8d0209 100644 --- a/tests/baselines/reference/referencesBloomFilters2.baseline.jsonc +++ b/tests/baselines/reference/referencesBloomFilters2.baseline.jsonc @@ -1,111 +1,60 @@ -// === /tests/cases/fourslash/redeclaration.ts === -// container = { "[|42|]" : 18 }; - +// === findAllReferences === // === /tests/cases/fourslash/declaration.ts === -// var container = { /*FIND ALL REFS*/[|42|]: 1 }; +// var container = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}42|]: 1|> }; + +// === /tests/cases/fourslash/expression.ts === +// function blah() { return (container[[|42|]]) === 2; }; // === /tests/cases/fourslash/stringIndexer.ts === // function blah2() { container["[|42|]"] }; -// === /tests/cases/fourslash/expression.ts === -// function blah() { return (container[[|42|]]) === 2; }; +// === /tests/cases/fourslash/redeclaration.ts === +// container = { <|"[|{| isWriteAccess: true |}42|]" : 18|> }; + + // === Definitions === + // === /tests/cases/fourslash/declaration.ts === + // var container = { /*FIND ALL REFS*/<|[|42|]: 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/declaration.ts", - "kind": "property", - "name": "(property) 42: number", - "textSpan": { - "start": 18, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "42", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 18, - "length": 5 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/declaration.ts", - "contextSpan": { - "start": 18, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 36, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/expression.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/stringIndexer.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 15, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/redeclaration.ts", - "contextSpan": { - "start": 14, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) 42: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "42", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesBloomFilters3.baseline.jsonc b/tests/baselines/reference/referencesBloomFilters3.baseline.jsonc index 694f901683802..4d6f4d386b3fa 100644 --- a/tests/baselines/reference/referencesBloomFilters3.baseline.jsonc +++ b/tests/baselines/reference/referencesBloomFilters3.baseline.jsonc @@ -1,297 +1,216 @@ +// === findAllReferences === +// === /tests/cases/fourslash/declaration.ts === +// enum Test { /*FIND ALL REFS*/<|"[|{| isWriteAccess: true, isDefinition: true |}42|]" = 1|> }; + // === /tests/cases/fourslash/expression.ts === // (Test[[|42|]]); -// === /tests/cases/fourslash/declaration.ts === -// enum Test { /*FIND ALL REFS*/"[|42|]" = 1 }; + // === Definitions === + // === /tests/cases/fourslash/declaration.ts === + // enum Test { /*FIND ALL REFS*/<|"[|42|]" = 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/declaration.ts", - "kind": "enum member", - "name": "(enum member) Test[\"42\"] = 1", - "textSpan": { - "start": 13, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 12, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/declaration.ts", - "contextSpan": { - "start": 12, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 6, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/expression.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) Test[\"42\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/declaration.ts === +// enum Test { <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}42|]" = 1|> }; // === /tests/cases/fourslash/expression.ts === // (Test[[|42|]]); -// === /tests/cases/fourslash/declaration.ts === -// enum Test { "/*FIND ALL REFS*/[|42|]" = 1 }; + // === Definitions === + // === /tests/cases/fourslash/declaration.ts === + // enum Test { <|"/*FIND ALL REFS*/[|42|]" = 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/declaration.ts", - "kind": "enum member", - "name": "(enum member) Test[\"42\"] = 1", - "textSpan": { - "start": 13, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 12, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/declaration.ts", - "contextSpan": { - "start": 12, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 6, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/expression.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) Test[\"42\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/declaration.ts === +// enum Test { <|"[|{| isWriteAccess: true |}42|]" = 1|> }; // === /tests/cases/fourslash/expression.ts === // (Test[/*FIND ALL REFS*/[|42|]]); -// === /tests/cases/fourslash/declaration.ts === -// enum Test { "[|42|]" = 1 }; + // === Definitions === + // === /tests/cases/fourslash/declaration.ts === + // enum Test { <|"[|42|]" = 1|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/declaration.ts", - "kind": "enum member", - "name": "(enum member) Test[\"42\"] = 1", - "textSpan": { - "start": 13, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 12, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/declaration.ts", - "contextSpan": { - "start": 12, - "length": 8 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 6, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/expression.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) Test[\"42\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForAmbients.baseline.jsonc b/tests/baselines/reference/referencesForAmbients.baseline.jsonc index a2740c4d4d755..63379ed4e1b31 100644 --- a/tests/baselines/reference/referencesForAmbients.baseline.jsonc +++ b/tests/baselines/reference/referencesForAmbients.baseline.jsonc @@ -1,10 +1,11 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === -// /*FIND ALL REFS*/declare module "[|foo|]" { +// /*FIND ALL REFS*/<|declare module "[|{| isWriteAccess: true, isDefinition: true |}foo|]" { // var f: number; -// } +// }|> // // declare module "bar" { -// export import foo = require("[|foo|]"); +// <|export import foo = require("[|foo|]");|> // var f2: typeof foo.f; // } // @@ -13,75 +14,56 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 101, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // /*FIND ALL REFS*/<|declare module "[|foo|]" { + // var f: number; + // }|> + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === -// declare module "/*FIND ALL REFS*/[|foo|]" { +// <|declare module "/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|]" { // var f: number; -// } +// }|> // // declare module "bar" { -// export import foo = require("[|foo|]"); +// <|export import foo = require("[|foo|]");|> // var f2: typeof foo.f; // } // @@ -90,71 +72,52 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 101, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // <|declare module "/*FIND ALL REFS*/[|foo|]" { + // var f: number; + // }|> + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { -// /*FIND ALL REFS*/var [|f|]: number; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}f|]: number;|> // } // // declare module "bar" { @@ -167,79 +130,64 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "var", - "name": "var f: number", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 27, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 131, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // /*FIND ALL REFS*/<|var [|f|]: number;|> + // } + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { -// var /*FIND ALL REFS*/[|f|]: number; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}f|]: number;|> // } // // declare module "bar" { @@ -252,237 +200,184 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "var", - "name": "var f: number", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 27, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 131, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // <|var /*FIND ALL REFS*/[|f|]: number;|> + // } + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // -// /*FIND ALL REFS*/declare module "[|bar|]" { +// /*FIND ALL REFS*/<|declare module "[|{| isWriteAccess: true, isDefinition: true |}bar|]" { // export import foo = require("foo"); // var f2: typeof foo.f; -// } +// }|> // // declare module "baz" { -// import bar = require("[|bar|]"); +// <|import bar = require("[|bar|]");|> // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"bar\"", - "textSpan": { - "start": 61, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"bar\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 45, - "length": 90 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 45, - "length": 90 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 164, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // /*FIND ALL REFS*/<|declare module "[|bar|]" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // }|> + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"bar\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"bar\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // -// declare module "/*FIND ALL REFS*/[|bar|]" { +// <|declare module "/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bar|]" { // export import foo = require("foo"); // var f2: typeof foo.f; -// } +// }|> // // declare module "baz" { -// import bar = require("[|bar|]"); +// <|import bar = require("[|bar|]");|> // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"bar\"", - "textSpan": { - "start": 61, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"bar\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 45, - "length": 90 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 45, - "length": 90 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 164, - "length": 28 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // <|declare module "/*FIND ALL REFS*/[|bar|]" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // }|> + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"bar\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"bar\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // // declare module "bar" { -// /*FIND ALL REFS*/export import [|foo|] = require("foo"); +// /*FIND ALL REFS*/<|export import [|{| isWriteAccess: true, isDefinition: true |}foo|] = require("foo");|> // var f2: typeof [|foo|].f; // } // @@ -491,140 +386,116 @@ // var f2: typeof bar.[|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "alias", - "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 72, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 216, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // declare module "bar" { + // /*FIND ALL REFS*/<|export import [|foo|] = require("foo");|> + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // // declare module "bar" { -// export import /*FIND ALL REFS*/[|foo|] = require("foo"); +// <|export import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|] = require("foo");|> // var f2: typeof [|foo|].f; // } // @@ -633,140 +504,116 @@ // var f2: typeof bar.[|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "alias", - "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 72, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 216, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // declare module "bar" { + // <|export import /*FIND ALL REFS*/[|foo|] = require("foo");|> + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === -// declare module "[|foo|]" { +// <|declare module "[|{| isWriteAccess: true |}foo|]" { // var f: number; -// } +// }|> // // declare module "bar" { -// export import foo = require("/*FIND ALL REFS*/[|foo|]"); +// <|export import foo = require("/*FIND ALL REFS*/[|foo|]");|> // var f2: typeof foo.f; // } // @@ -775,73 +622,56 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 101, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // <|declare module "[|foo|]" { + // var f: number; + // }|> + // + // declare module "bar" { + // export import foo = require("/*FIND ALL REFS*/foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // // declare module "bar" { -// export import [|foo|] = require("foo"); +// <|export import [|{| isWriteAccess: true |}foo|] = require("foo");|> // var f2: typeof /*FIND ALL REFS*/[|foo|].f; // } // @@ -850,133 +680,112 @@ // var f2: typeof bar.[|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "alias", - "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 72, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 216, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // declare module "bar" { + // <|export import [|foo|] = require("foo");|> + // var f2: typeof /*FIND ALL REFS*/foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { -// var [|f|]: number; +// <|var [|{| isWriteAccess: true |}f|]: number;|> // } // // declare module "bar" { @@ -989,74 +798,61 @@ // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "var", - "name": "var f: number", - "textSpan": { - "start": 31, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 31, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 27, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 131, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // <|var [|f|]: number;|> + // } + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo./*FIND ALL REFS*/f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var f: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; @@ -1068,210 +864,178 @@ // } // // declare module "baz" { -// /*FIND ALL REFS*/import [|bar|] = require("bar"); +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}bar|] = require("bar");|> // var f2: typeof [|bar|].foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "alias", - "name": "(alias) module \"bar\"\nimport bar = require(\"bar\")", - "textSpan": { - "start": 171, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"bar\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"bar\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 164, - "length": 28 - } - }, - "references": [ - { - "textSpan": { - "start": 171, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 164, - "length": 28 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 212, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // declare module "bar" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // /*FIND ALL REFS*/<|import [|bar|] = require("bar");|> + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"bar\"\nimport bar = require(\"bar\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"bar\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"bar\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // -// declare module "[|bar|]" { +// <|declare module "[|{| isWriteAccess: true |}bar|]" { // export import foo = require("foo"); // var f2: typeof foo.f; -// } +// }|> // // declare module "baz" { -// import bar = require("/*FIND ALL REFS*/[|bar|]"); +// <|import bar = require("/*FIND ALL REFS*/[|bar|]");|> // var f2: typeof bar.foo; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "module", - "name": "module \"bar\"", - "textSpan": { - "start": 61, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"bar\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 45, - "length": 90 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 45, - "length": 90 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 164, - "length": 28 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // <|declare module "[|bar|]" { + // export import foo = require("foo"); + // var f2: typeof foo.f; + // }|> + // + // declare module "baz" { + // import bar = require("/*FIND ALL REFS*/bar"); + // var f2: typeof bar.foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"bar\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"bar\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForAmbients.ts === // declare module "foo" { // var f: number; // } // // declare module "bar" { -// export import [|foo|] = require("foo"); +// <|export import [|{| isWriteAccess: true |}foo|] = require("foo");|> // var f2: typeof [|foo|].f; // } // @@ -1280,126 +1044,102 @@ // var f2: typeof bar./*FIND ALL REFS*/[|foo|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "kind": "alias", - "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", - "textSpan": { - "start": 86, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 72, - "length": 35 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "contextSpan": { - "start": 72, - "length": 35 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 127, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 216, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForAmbients.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForAmbients.ts === + // declare module "foo" { + // var f: number; + // } + // + // declare module "bar" { + // <|export import [|foo|] = require("foo");|> + // var f2: typeof foo.f; + // } + // + // declare module "baz" { + // import bar = require("bar"); + // var f2: typeof bar./*FIND ALL REFS*/foo; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"foo\"\nimport foo = require(\"foo\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForAmbients2.baseline.jsonc b/tests/baselines/reference/referencesForAmbients2.baseline.jsonc index ce89b56d9078f..061255cffcac9 100644 --- a/tests/baselines/reference/referencesForAmbients2.baseline.jsonc +++ b/tests/baselines/reference/referencesForAmbients2.baseline.jsonc @@ -1,6 +1,13 @@ +// === findAllReferences === // === /defA.ts === // declare module "a" { -// /*FIND ALL REFS*/export type [|T|] = number; +// /*FIND ALL REFS*/<|export type [|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> +// } + +// === /defB.ts === +// declare module "b" { +// export import a = require("a"); +// export const x: a.[|T|]; // } // === /defC.ts === @@ -9,98 +16,64 @@ // const x: b.a.[|T|]; // } -// === /defB.ts === -// declare module "b" { -// export import a = require("a"); -// export const x: a.[|T|]; -// } + // === Definitions === + // === /defA.ts === + // declare module "a" { + // /*FIND ALL REFS*/<|export type [|T|] = number;|> + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/defA.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/defA.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/defB.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/defC.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /defA.ts === // declare module "a" { -// export type /*FIND ALL REFS*/[|T|] = number; +// <|export type /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}T|] = number;|> +// } + +// === /defB.ts === +// declare module "b" { +// export import a = require("a"); +// export const x: a.[|T|]; // } // === /defC.ts === @@ -109,98 +82,64 @@ // const x: b.a.[|T|]; // } -// === /defB.ts === -// declare module "b" { -// export import a = require("a"); -// export const x: a.[|T|]; -// } + // === Definitions === + // === /defA.ts === + // declare module "a" { + // <|export type /*FIND ALL REFS*/[|T|] = number;|> + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/defA.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/defA.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/defB.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/defC.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /defA.ts === // declare module "a" { -// export type [|T|] = number; +// <|export type [|{| isWriteAccess: true |}T|] = number;|> +// } + +// === /defB.ts === +// declare module "b" { +// export import a = require("a"); +// export const x: a./*FIND ALL REFS*/[|T|]; // } // === /defC.ts === @@ -209,95 +148,64 @@ // const x: b.a.[|T|]; // } -// === /defB.ts === -// declare module "b" { -// export import a = require("a"); -// export const x: a./*FIND ALL REFS*/[|T|]; -// } + // === Definitions === + // === /defA.ts === + // declare module "a" { + // <|export type [|T|] = number;|> + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/defA.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/defA.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/defB.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/defC.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /defA.ts === // declare module "a" { -// export type [|T|] = number; +// <|export type [|{| isWriteAccess: true |}T|] = number;|> +// } + +// === /defB.ts === +// declare module "b" { +// export import a = require("a"); +// export const x: a.[|T|]; // } // === /defC.ts === @@ -306,88 +214,48 @@ // const x: b.a./*FIND ALL REFS*/[|T|]; // } -// === /defB.ts === -// declare module "b" { -// export import a = require("a"); -// export const x: a.[|T|]; -// } + // === Definitions === + // === /defA.ts === + // declare module "a" { + // <|export type [|T|] = number;|> + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/defA.ts", - "kind": "type", - "name": "type T = number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 25, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/defA.ts", - "contextSpan": { - "start": 25, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/defB.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 67, - "length": 1 - }, - "fileName": "/defC.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = number", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForClassLocal.baseline.jsonc b/tests/baselines/reference/referencesForClassLocal.baseline.jsonc index 057bd9468bb63..b9facd7ff9c4f 100644 --- a/tests/baselines/reference/referencesForClassLocal.baseline.jsonc +++ b/tests/baselines/reference/referencesForClassLocal.baseline.jsonc @@ -1,15 +1,16 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassLocal.ts === // var n = 14; // // class foo { -// /*FIND ALL REFS*/private [|n|] = 0; +// /*FIND ALL REFS*/<|private [|{| isWriteAccess: true, isDefinition: true |}n|] = 0;|> // // public bar() { -// this.[|n|] = 9; +// this.[|{| isWriteAccess: true |}n|] = 9; // } // // constructor() { -// this.[|n|] = 4; +// this.[|{| isWriteAccess: true |}n|] = 4; // } // // public bar2() { @@ -17,113 +18,93 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "kind": "property", - "name": "(property) foo.n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassLocal.ts === + // var n = 14; + // + // class foo { + // /*FIND ALL REFS*/<|private [|n|] = 0;|> + // + // public bar() { + // this.n = 9; + // } + // + // constructor() { + // this.n = 4; + // } + // + // public bar2() { + // var n = 12; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassLocal.ts === // var n = 14; // // class foo { -// private /*FIND ALL REFS*/[|n|] = 0; +// <|private /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}n|] = 0;|> // // public bar() { -// this.[|n|] = 9; +// this.[|{| isWriteAccess: true |}n|] = 9; // } // // constructor() { -// this.[|n|] = 4; +// this.[|{| isWriteAccess: true |}n|] = 4; // } // // public bar2() { @@ -131,113 +112,93 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "kind": "property", - "name": "(property) foo.n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassLocal.ts === + // var n = 14; + // + // class foo { + // <|private /*FIND ALL REFS*/[|n|] = 0;|> + // + // public bar() { + // this.n = 9; + // } + // + // constructor() { + // this.n = 4; + // } + // + // public bar2() { + // var n = 12; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassLocal.ts === // var n = 14; // // class foo { -// private [|n|] = 0; +// <|private [|{| isWriteAccess: true |}n|] = 0;|> // // public bar() { -// this./*FIND ALL REFS*/[|n|] = 9; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}n|] = 9; // } // // constructor() { -// this.[|n|] = 4; +// this.[|{| isWriteAccess: true |}n|] = 4; // } // // public bar2() { @@ -245,110 +206,93 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "kind": "property", - "name": "(property) foo.n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassLocal.ts === + // var n = 14; + // + // class foo { + // <|private [|n|] = 0;|> + // + // public bar() { + // this./*FIND ALL REFS*/n = 9; + // } + // + // constructor() { + // this.n = 4; + // } + // + // public bar2() { + // var n = 12; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassLocal.ts === // var n = 14; // // class foo { -// private [|n|] = 0; +// <|private [|{| isWriteAccess: true |}n|] = 0;|> // // public bar() { -// this.[|n|] = 9; +// this.[|{| isWriteAccess: true |}n|] = 9; // } // // constructor() { -// this./*FIND ALL REFS*/[|n|] = 4; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}n|] = 4; // } // // public bar2() { @@ -356,94 +300,74 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "kind": "property", - "name": "(property) foo.n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 124, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassLocal.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassLocal.ts === + // var n = 14; + // + // class foo { + // <|private [|n|] = 0;|> + // + // public bar() { + // this.n = 9; + // } + // + // constructor() { + // this./*FIND ALL REFS*/n = 4; + // } + // + // public bar2() { + // var n = 12; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForClassMembers.baseline.jsonc b/tests/baselines/reference/referencesForClassMembers.baseline.jsonc index 7f76494f781f7..a57232d1beecd 100644 --- a/tests/baselines/reference/referencesForClassMembers.baseline.jsonc +++ b/tests/baselines/reference/referencesForClassMembers.baseline.jsonc @@ -1,1085 +1,849 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { -// /*FIND ALL REFS*/[|a|]: number; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}a|]: number;|> // method(): void { } // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}a|]: number;|> + // method(): void { } + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 86, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { -// [|a|]: number; +// <|[|{| defId: 0 |}a|]: number;|> // method(): void { } // } // class MyClass extends Base { -// /*FIND ALL REFS*/[|a|]; +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // <|[|{| defId: 0 |}a|]: number;|> + // method(): void { } + // } + // class MyClass extends Base { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 86, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { -// [|a|]: number; +// <|[|{| defId: 0 |}a|]: number;|> // method(): void { } // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c./*FIND ALL REFS*/[|a|]; +// c./*FIND ALL REFS*/[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 17, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // <|[|{| defId: 0 |}a|]: number;|> + // method(): void { } + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c./*FIND ALL REFS*/a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 86, - "length": 2 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 127, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { // a: number; -// /*FIND ALL REFS*/[|method|](): void { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}method|](): void { }|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // a: number; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}method|](): void { }|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 32, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 32, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 93, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 93, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 132, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { // a: number; -// [|method|](): void { } +// <|[|{| defId: 0, isWriteAccess: true |}method|](): void { }|> // } // class MyClass extends Base { // a; -// /*FIND ALL REFS*/[|method|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 32, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 32, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // a: number; + // <|[|{| defId: 0 |}method|](): void { }|> + // } + // class MyClass extends Base { + // a; + // /*FIND ALL REFS*/<|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 93, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 93, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 132, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembers.ts === // class Base { // a: number; -// [|method|](): void { } +// <|[|{| defId: 0, isWriteAccess: true |}method|](): void { }|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c./*FIND ALL REFS*/[|method|](); +// c./*FIND ALL REFS*/[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembers.ts === + // class Base { + // a: number; + // <|[|{| defId: 0 |}method|](): void { }|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c./*FIND ALL REFS*/method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 32, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 32, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 32, - "length": 18 - }, - "isWriteAccess": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 93, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "contextSpan": { - "start": 93, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 132, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembers.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForClassMembersExtendingAbstractClass.baseline.jsonc b/tests/baselines/reference/referencesForClassMembersExtendingAbstractClass.baseline.jsonc index b4d5c948fc391..5721067533cf3 100644 --- a/tests/baselines/reference/referencesForClassMembersExtendingAbstractClass.baseline.jsonc +++ b/tests/baselines/reference/referencesForClassMembersExtendingAbstractClass.baseline.jsonc @@ -1,1085 +1,849 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { -// abstract /*FIND ALL REFS*/[|a|]: number; +// <|abstract /*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}a|]: number;|> // abstract method(): void; // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 26, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // <|abstract /*FIND ALL REFS*/[|{| defId: 0 |}a|]: number;|> + // abstract method(): void; + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 110, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 110, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 110, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 151, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { -// abstract [|a|]: number; +// <|abstract [|{| defId: 0 |}a|]: number;|> // abstract method(): void; // } // class MyClass extends Base { -// /*FIND ALL REFS*/[|a|]; +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 26, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // <|abstract [|{| defId: 0 |}a|]: number;|> + // abstract method(): void; + // } + // class MyClass extends Base { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 110, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 110, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 110, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 151, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { -// abstract [|a|]: number; +// <|abstract [|{| defId: 0 |}a|]: number;|> // abstract method(): void; // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c./*FIND ALL REFS*/[|a|]; +// c./*FIND ALL REFS*/[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) Base.a: number", - "textSpan": { - "start": 35, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 19 - } - }, - "references": [ - { - "textSpan": { - "start": 35, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 26, - "length": 19 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // <|abstract [|{| defId: 0 |}a|]: number;|> + // abstract method(): void; + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c./*FIND ALL REFS*/a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 110, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 110, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 110, - "length": 2 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 151, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { // abstract a: number; -// abstract /*FIND ALL REFS*/[|method|](): void; +// <|abstract /*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}method|](): void;|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // abstract a: number; + // <|abstract /*FIND ALL REFS*/[|{| defId: 0 |}method|](): void;|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 59, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 59, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 50, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 117, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 117, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 117, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 156, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { // abstract a: number; -// abstract [|method|](): void; +// <|abstract [|{| defId: 0 |}method|](): void;|> // } // class MyClass extends Base { // a; -// /*FIND ALL REFS*/[|method|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 59, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 59, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 50, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // abstract a: number; + // <|abstract [|{| defId: 0 |}method|](): void;|> + // } + // class MyClass extends Base { + // a; + // /*FIND ALL REFS*/<|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 117, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 117, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 117, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 156, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === // abstract class Base { // abstract a: number; -// abstract [|method|](): void; +// <|abstract [|{| defId: 0 |}method|](): void;|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c./*FIND ALL REFS*/[|method|](); +// c./*FIND ALL REFS*/[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts === + // abstract class Base { + // abstract a: number; + // <|abstract [|{| defId: 0 |}method|](): void;|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c./*FIND ALL REFS*/method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) Base.method(): void", - "textSpan": { - "start": 59, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 59, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 50, - "length": 24 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 117, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 117, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "contextSpan": { - "start": 117, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 156, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingAbstractClass.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForClassMembersExtendingGenericClass.baseline.jsonc b/tests/baselines/reference/referencesForClassMembersExtendingGenericClass.baseline.jsonc index f0c3577201000..a9033e569e1ae 100644 --- a/tests/baselines/reference/referencesForClassMembersExtendingGenericClass.baseline.jsonc +++ b/tests/baselines/reference/referencesForClassMembersExtendingGenericClass.baseline.jsonc @@ -1,1337 +1,1101 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { -// /*FIND ALL REFS*/[|a|]: this; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}a|]: this;|> // method(a?:T, b?:U): this { } // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) Base.a: this", - "textSpan": { - "start": 20, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 20, - "length": 8 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}a|]: this;|> + // method(a?:T, b?:U): this { } + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 108, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 108, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { -// [|a|]: this; +// <|[|{| defId: 0 |}a|]: this;|> // method(a?:T, b?:U): this { } // } // class MyClass extends Base { -// /*FIND ALL REFS*/[|a|]; +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}a|];|> // method() { } // } // // var c: MyClass; -// c.[|a|]; +// c.[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) Base.a: this", - "textSpan": { - "start": 20, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 20, - "length": 8 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // <|[|{| defId: 0 |}a|]: this;|> + // method(a?:T, b?:U): this { } + // } + // class MyClass extends Base { + // /*FIND ALL REFS*/<|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 108, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 108, - "length": 2 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { -// [|a|]: this; +// <|[|{| defId: 0 |}a|]: this;|> // method(a?:T, b?:U): this { } // } // class MyClass extends Base { -// [|a|]; +// <|[|{| defId: 1 |}a|];|> // method() { } // } // // var c: MyClass; -// c./*FIND ALL REFS*/[|a|]; +// c./*FIND ALL REFS*/[|{| defId: 1 |}a|]; // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) Base.a: this", - "textSpan": { - "start": 20, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 20, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 20, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 20, - "length": 8 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // <|[|{| defId: 0 |}a|]: this;|> + // method(a?:T, b?:U): this { } + // } + // class MyClass extends Base { + // <|[|{| defId: 1 |}a|];|> + // method() { } + // } + // + // var c: MyClass; + // c./*FIND ALL REFS*/a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "property", - "name": "(property) MyClass.a: any", - "textSpan": { - "start": 108, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 2 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 108, - "length": 2 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 149, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MyClass.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { // a: this; -// /*FIND ALL REFS*/[|method|](a?:T, b?:U): this { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}method|](a?:T, b?:U): this { }|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // a: this; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}method|](a?:T, b?:U): this { }|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) Base.method(a?: T, b?: U): this", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 33, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(a?: T, b?: U): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 115, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 115, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 154, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { // a: this; -// [|method|](a?:T, b?:U): this { } +// <|[|{| defId: 0, isWriteAccess: true |}method|](a?:T, b?:U): this { }|> // } // class MyClass extends Base { // a; -// /*FIND ALL REFS*/[|method|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 1, isWriteAccess: true, isDefinition: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c.[|method|](); +// c.[|{| defId: 1 |}method|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) Base.method(a?: T, b?: U): this", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 33, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // a: this; + // <|[|{| defId: 0 |}method|](a?:T, b?:U): this { }|> + // } + // class MyClass extends Base { + // a; + // /*FIND ALL REFS*/<|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c.method(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(a?: T, b?: U): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 115, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 115, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 154, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === // class Base { // a: this; -// [|method|](a?:T, b?:U): this { } +// <|[|{| defId: 0, isWriteAccess: true |}method|](a?:T, b?:U): this { }|> // } // class MyClass extends Base { // a; -// [|method|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}method|]() { }|> // } // // var c: MyClass; // c.a; -// c./*FIND ALL REFS*/[|method|](); +// c./*FIND ALL REFS*/[|{| defId: 1 |}method|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts === + // class Base { + // a: this; + // <|[|{| defId: 0 |}method|](a?:T, b?:U): this { }|> + // } + // class MyClass extends Base { + // a; + // <|[|{| defId: 1 |}method|]() { }|> + // } + // + // var c: MyClass; + // c.a; + // c./*FIND ALL REFS*/method(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) Base.method(a?: T, b?: U): this", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 33, - "length": 31 - }, - "isWriteAccess": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Base.method(a?: T, b?: U): this", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "kind": "method", - "name": "(method) MyClass.method(): void", - "textSpan": { - "start": 115, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "contextSpan": { - "start": 115, - "length": 12 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForClassMembersExtendingGenericClass.ts", - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MyClass.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForClassParameter.baseline.jsonc b/tests/baselines/reference/referencesForClassParameter.baseline.jsonc index ab3369abe6f14..a3e190cfe0d81 100644 --- a/tests/baselines/reference/referencesForClassParameter.baseline.jsonc +++ b/tests/baselines/reference/referencesForClassParameter.baseline.jsonc @@ -1,445 +1,365 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassParameter.ts === // var p = 2; // // class p { } // // class foo { -// constructor (/*FIND ALL REFS*/public [|p|]: any) { +// constructor (/*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}p|]: any|>) { // } // // public f(p) { -// this.[|p|] = p; +// this.[|{| isWriteAccess: true |}p|] = p; // } // // } // // var n = new foo(undefined); -// n.[|p|] = null; +// n.[|{| isWriteAccess: true |}p|] = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "kind": "property", - "name": "(property) foo.p: any", - "textSpan": { - "start": 61, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 54, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "contextSpan": { - "start": 54, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 156, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassParameter.ts === + // var p = 2; + // + // class p { } + // + // class foo { + // constructor (/*FIND ALL REFS*/<|public [|p|]: any|>) { + // } + // + // public f(p) { + // this.p = p; + // } + // + // } + // + // var n = new foo(undefined); + // n.p = null; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.p: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassParameter.ts === // var p = 2; // // class p { } // // class foo { -// constructor (public /*FIND ALL REFS*/[|p|]: any) { +// constructor (<|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}p|]: any|>) { // } // // public f(p) { -// this.[|p|] = p; +// this.[|{| isWriteAccess: true |}p|] = p; // } // // } // // var n = new foo(undefined); -// n.[|p|] = null; +// n.[|{| isWriteAccess: true |}p|] = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "kind": "property", - "name": "(property) foo.p: any", - "textSpan": { - "start": 61, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 54, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "contextSpan": { - "start": 54, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 156, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForClassParameter.ts === + // var p = 2; + // + // class p { } + // + // class foo { + // constructor (<|public /*FIND ALL REFS*/[|p|]: any|>) { + // } + // + // public f(p) { + // this.p = p; + // } + // + // } + // + // var n = new foo(undefined); + // n.p = null; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.p: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassParameter.ts === // var p = 2; // // class p { } // // class foo { -// constructor (public [|p|]: any) { +// constructor (<|public [|{| isWriteAccess: true |}p|]: any|>) { // } // // public f(p) { -// this./*FIND ALL REFS*/[|p|] = p; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}p|] = p; // } // // } // // var n = new foo(undefined); -// n.[|p|] = null; +// n.[|{| isWriteAccess: true |}p|] = null; + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassParameter.ts === + // var p = 2; + // + // class p { } + // + // class foo { + // constructor (<|public [|p|]: any|>) { + // } + // + // public f(p) { + // this./*FIND ALL REFS*/p = p; + // } + // + // } + // + // var n = new foo(undefined); + // n.p = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "kind": "property", - "name": "(property) foo.p: any", - "textSpan": { - "start": 61, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 54, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "contextSpan": { - "start": 54, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 156, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.p: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForClassParameter.ts === // var p = 2; // // class p { } // // class foo { -// constructor (public [|p|]: any) { +// constructor (<|public [|{| isWriteAccess: true |}p|]: any|>) { // } // // public f(p) { -// this.[|p|] = p; +// this.[|{| isWriteAccess: true |}p|] = p; // } // // } // // var n = new foo(undefined); -// n./*FIND ALL REFS*/[|p|] = null; +// n./*FIND ALL REFS*/[|{| isWriteAccess: true |}p|] = null; + + // === Definitions === + // === /tests/cases/fourslash/referencesForClassParameter.ts === + // var p = 2; + // + // class p { } + // + // class foo { + // constructor (<|public [|p|]: any|>) { + // } + // + // public f(p) { + // this.p = p; + // } + // + // } + // + // var n = new foo(undefined); + // n./*FIND ALL REFS*/p = null; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "kind": "property", - "name": "(property) foo.p: any", - "textSpan": { - "start": 61, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 54, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 61, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "contextSpan": { - "start": 54, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 109, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 156, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForClassParameter.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.p: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForContextuallyTypedObjectLiteralProperties.baseline.jsonc b/tests/baselines/reference/referencesForContextuallyTypedObjectLiteralProperties.baseline.jsonc index 60b60e672a3f1..4e2126c34c3b6 100644 --- a/tests/baselines/reference/referencesForContextuallyTypedObjectLiteralProperties.baseline.jsonc +++ b/tests/baselines/reference/referencesForContextuallyTypedObjectLiteralProperties.baseline.jsonc @@ -1,206 +1,105 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts === -// interface IFoo { /*FIND ALL REFS*/[|xy|]: number; } +// interface IFoo { /*FIND ALL REFS*/<|[|{| isDefinition: true |}xy|]: number;|> } // // // Assignment -// var a1: IFoo = { [|xy|]: 0 }; -// var a2: IFoo = { [|xy|]: 0 }; +// var a1: IFoo = { <|[|{| isWriteAccess: true |}xy|]: 0|> }; +// var a2: IFoo = { <|[|{| isWriteAccess: true |}xy|]: 0|> }; // // // Function call // function consumer(f: IFoo) { } -// consumer({ [|xy|]: 1 }); +// consumer({ <|[|{| isWriteAccess: true |}xy|]: 1|> }); // // // Type cast -// var c = { [|xy|]: 0 }; +// var c = { <|[|{| isWriteAccess: true |}xy|]: 0|> }; // // // Array literal -// var ar: IFoo[] = [{ [|xy|]: 1 }, { [|xy|]: 2 }]; +// var ar: IFoo[] = [{ <|[|{| isWriteAccess: true |}xy|]: 1|> }, { <|[|{| isWriteAccess: true |}xy|]: 2|> }]; // // // Nested object literal -// var ob: { ifoo: IFoo } = { ifoo: { [|xy|]: 0 } }; +// var ob: { ifoo: IFoo } = { ifoo: { <|[|{| isWriteAccess: true |}xy|]: 0|> } }; // // // Widened type -// var w: IFoo = { [|xy|]: undefined }; +// var w: IFoo = { <|[|{| isWriteAccess: true |}xy|]: undefined|> }; // // // Untped -- should not be included // var u = { xy: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) IFoo.xy: number", - "textSpan": { - "start": 17, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "xy", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 17, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 63, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 63, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 89, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 158, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 158, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 198, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 198, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 245, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 245, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 256, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 256, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 327, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 327, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 371, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts", - "contextSpan": { - "start": 371, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedObjectLiteralProperties.ts === + // interface IFoo { /*FIND ALL REFS*/<|[|xy|]: number;|> } + // + // // Assignment + // var a1: IFoo = { xy: 0 }; + // var a2: IFoo = { xy: 0 }; + // + // // Function call + // function consumer(f: IFoo) { } + // consumer({ xy: 1 }); + // + // // Type cast + // var c = { xy: 0 }; + // + // // Array literal + // var ar: IFoo[] = [{ xy: 1 }, { xy: 2 }]; + // + // // Nested object literal + // var ob: { ifoo: IFoo } = { ifoo: { xy: 0 } }; + // + // // Widened type + // var w: IFoo = { xy: undefined }; + // + // // Untped -- should not be included + // var u = { xy: 0 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) IFoo.xy: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "xy", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForContextuallyTypedUnionProperties.baseline.jsonc b/tests/baselines/reference/referencesForContextuallyTypedUnionProperties.baseline.jsonc index 9c5ff760dd68e..0132c7a413ecc 100644 --- a/tests/baselines/reference/referencesForContextuallyTypedUnionProperties.baseline.jsonc +++ b/tests/baselines/reference/referencesForContextuallyTypedUnionProperties.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// /*FIND ALL REFS*/[|common|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}common|]: string;|> // } // // interface B { @@ -10,279 +11,178 @@ // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 1, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}<|[|{| defId: 1 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // common: number; + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; @@ -291,3151 +191,2039 @@ // // interface B { // b: number; -// /*FIND ALL REFS*/[|common|]: number; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 1, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 1, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 1 |}common|]: string;|> + // } + // + // interface B { + // b: number; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, /*FIND ALL REFS*/[|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, /*FIND ALL REFS*/common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, /*FIND ALL REFS*/[|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, /*FIND ALL REFS*/common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, /*FIND ALL REFS*/[|common|]: 1 }); +// consumer({ a: 0, b: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, /*FIND ALL REFS*/common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { /*FIND ALL REFS*/[|common|]: 0, b: 0 }; +// var c = { /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { /*FIND ALL REFS*/common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, /*FIND ALL REFS*/[|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, /*FIND ALL REFS*/common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, /*FIND ALL REFS*/[|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, /*FIND ALL REFS*/common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, /*FIND ALL REFS*/[|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, [|common|]: undefined }; +// var w: A|B = { a:0, <|[|{| defId: 2, isWriteAccess: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, /*FIND ALL REFS*/common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === // interface A { // a: number; -// [|common|]: string; +// <|[|{| defId: 0 |}common|]: string;|> // } // // interface B { // b: number; -// [|common|]: number; +// <|[|{| defId: 1 |}common|]: number;|> // } // // // Assignment -// var v1: A | B = { a: 0, [|common|]: "" }; -// var v2: A | B = { b: 0, [|common|]: 3 }; +// var v1: A | B = { a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }; +// var v2: A | B = { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 3|> }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, b: 0, [|common|]: 1 }); +// consumer({ a: 0, b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 1|> }); // // // Type cast -// var c = { [|common|]: 0, b: 0 }; +// var c = { <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|>, b: 0 }; // // // Array literal -// var ar: Array = [{ a: 0, [|common|]: "" }, { b: 0, [|common|]: 0 }]; +// var ar: Array = [{ a: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: ""|> }, { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { b: 0, [|common|]: 0 } }; +// var ob: { aorb: A|B } = { aorb: { b: 0, <|[|{| defId: 2, isWriteAccess: true |}common|]: 0|> } }; // // // Widened type -// var w: A|B = { a:0, /*FIND ALL REFS*/[|common|]: undefined }; +// var w: A|B = { a:0, /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}common|]: undefined|> }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) A.common: string", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 33, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts === + // interface A { + // a: number; + // <|[|{| defId: 0 |}<|[|{| defId: 2 |}common|]|]: string;|>|> + // } + // + // interface B { + // b: number; + // <|[|{| defId: 1 |}common|]: number;|> + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { a:0, /*FIND ALL REFS*/common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) A.common: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) B.common: number", - "textSpan": { - "start": 85, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 85, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 85, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 85, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.common: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "kind": "property", - "name": "(property) common: string | number", - "textSpan": { - "start": 33, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "common", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 142, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 180, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 180, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 267, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 267, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 313, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 313, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 380, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 380, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 402, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 402, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 482, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 482, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 534, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties.ts", - "contextSpan": { - "start": 534, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) common: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "common", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForContextuallyTypedUnionProperties2.baseline.jsonc b/tests/baselines/reference/referencesForContextuallyTypedUnionProperties2.baseline.jsonc index 340cd79121f3e..d4d268aa636ba 100644 --- a/tests/baselines/reference/referencesForContextuallyTypedUnionProperties2.baseline.jsonc +++ b/tests/baselines/reference/referencesForContextuallyTypedUnionProperties2.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts === // interface A { // a: number; @@ -5,185 +6,118 @@ // } // // interface B { -// /*FIND ALL REFS*/[|b|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}b|]: number;|> // common: number; // } // // // Assignment // var v1: A | B = { a: 0, common: "" }; -// var v2: A | B = { [|b|]: 0, common: 3 }; +// var v2: A | B = { <|[|{| isWriteAccess: true |}b|]: 0|>, common: 3 }; // // // Function call // function consumer(f: A | B) { } -// consumer({ a: 0, [|b|]: 0, common: 1 }); +// consumer({ a: 0, <|[|{| isWriteAccess: true |}b|]: 0|>, common: 1 }); // // // Type cast -// var c = { common: 0, [|b|]: 0 }; +// var c = { common: 0, <|[|{| isWriteAccess: true |}b|]: 0|> }; // // // Array literal -// var ar: Array = [{ a: 0, common: "" }, { [|b|]: 0, common: 0 }]; +// var ar: Array = [{ a: 0, common: "" }, { <|[|{| isWriteAccess: true |}b|]: 0|>, common: 0 }]; // // // Nested object literal -// var ob: { aorb: A|B } = { aorb: { [|b|]: 0, common: 0 } }; +// var ob: { aorb: A|B } = { aorb: { <|[|{| isWriteAccess: true |}b|]: 0|>, common: 0 } }; // // // Widened type -// var w: A|B = { [|b|]:undefined, common: undefined }; +// var w: A|B = { <|[|{| isWriteAccess: true |}b|]:undefined|>, common: undefined }; // // // Untped -- should not be included // var u1 = { a: 0, b: 0, common: "" }; // var u2 = { b: 0, common: 0 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "kind": "property", - "name": "(property) B.b: number", - "textSpan": { - "start": 70, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 70, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 70, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 174, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 174, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 261, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 261, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 324, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 324, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 396, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 396, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 476, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 476, - "length": 4 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 529, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts", - "contextSpan": { - "start": 529, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForContextuallyTypedUnionProperties2.ts === + // interface A { + // a: number; + // common: string; + // } + // + // interface B { + // /*FIND ALL REFS*/<|[|b|]: number;|> + // common: number; + // } + // + // // Assignment + // var v1: A | B = { a: 0, common: "" }; + // var v2: A | B = { b: 0, common: 3 }; + // + // // Function call + // function consumer(f: A | B) { } + // consumer({ a: 0, b: 0, common: 1 }); + // + // // Type cast + // var c = { common: 0, b: 0 }; + // + // // Array literal + // var ar: Array = [{ a: 0, common: "" }, { b: 0, common: 0 }]; + // + // // Nested object literal + // var ob: { aorb: A|B } = { aorb: { b: 0, common: 0 } }; + // + // // Widened type + // var w: A|B = { b:undefined, common: undefined }; + // + // // Untped -- should not be included + // var u1 = { a: 0, b: 0, common: "" }; + // var u2 = { b: 0, common: 0 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) B.b: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc b/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc index aacecb45673f7..76d3ff680ff77 100644 --- a/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc @@ -1,10 +1,11 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} -// /*FIND ALL REFS*/class [|C1|] extends Base implements Implemented1 { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}C1|] extends Base implements Implemented1 { // get e() { return 1; } // set e(v) {} -// } +// }|> // interface I1 extends Base { } // type T = { } // enum E { } @@ -19,57 +20,57 @@ // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "class", - "name": "class C1", - "textSpan": { - "start": 46, - "length": 2 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - } - ], - "contextSpan": { - "start": 40, - "length": 91 - } - }, - "references": [ - { - "textSpan": { - "start": 46, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 40, - "length": 91 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // /*FIND ALL REFS*/<|class [|C1|] extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // }|> + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C1", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === -// class [|Base|] {} +// <|class [|{| isWriteAccess: true |}Base|] {}|> // interface Implemented1 {} // class C1 /*FIND ALL REFS*/extends [|Base|] implements Implemented1 { // get e() { return 1; } @@ -89,73 +90,58 @@ // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "class", - "name": "class Base", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 153, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // <|class [|Base|] {}|> + // interface Implemented1 {} + // class C1 /*FIND ALL REFS*/extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Base", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} -// interface [|Implemented1|] {} +// <|interface [|{| isWriteAccess: true |}Implemented1|] {}|> // class C1 extends Base /*FIND ALL REFS*/implements [|Implemented1|] { // get e() { return 1; } // set e(v) {} @@ -174,70 +160,85 @@ // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "interface", - "name": "interface Implemented1", - "textSpan": { - "start": 24, - "length": 12 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Implemented1", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 14, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 14, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 73, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // <|interface [|Implemented1|] {}|> + // class C1 extends Base /*FIND ALL REFS*/implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface Implemented1", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Implemented1", + "kind": "interfaceName" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} // class C1 extends Base implements Implemented1 { -// /*FIND ALL REFS*/get [|e|]() { return 1; } -// set [|e|](v) {} +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; +// interface Implemented2 {} +// interface Implemented3 {} +// class C2 /*FIND ALL REFS*/implements Implemented2, Implemented3 {} +// interface I2 extends Implemented2, Implemented3 {} + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// /*FIND ALL REFS*/<|get [|{| isWriteAccess: true, isDefinition: true |}e|]() { return 1; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}e|](v) {}|> // } // interface I1 extends Base { } // type T = { } @@ -253,102 +254,89 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "property", - "name": "(property) C1.e: number", - "textSpan": { - "start": 96, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "e", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 92, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 92, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 118, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // /*FIND ALL REFS*/<|get [|e|]() { return 1; }|> + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.e: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "e", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} // class C1 extends Base implements Implemented1 { -// get [|e|]() { return 1; } -// /*FIND ALL REFS*/set [|e|](v) {} +// <|get [|{| isWriteAccess: true, isDefinition: true |}e|]() { return 1; }|> +// /*FIND ALL REFS*/<|set [|{| isWriteAccess: true, isDefinition: true |}e|](v) {}|> // } // interface I1 extends Base { } // type T = { } @@ -364,96 +352,83 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "property", - "name": "(property) C1.e: number", - "textSpan": { - "start": 96, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "e", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 92, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 96, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 92, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 122, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 118, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // <|get [|e|]() { return 1; }|> + // /*FIND ALL REFS*/set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.e: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "e", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -461,7 +436,7 @@ undefined // get e() { return 1; } // set e(v) {} // } -// /*FIND ALL REFS*/interface [|I1|] extends Base { } +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}I1|] extends Base { }|> // type T = { } // enum E { } // namespace N { } @@ -475,57 +450,57 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "interface", - "name": "interface I1", - "textSpan": { - "start": 142, - "length": 2 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I1", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 132, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 142, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 132, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // /*FIND ALL REFS*/<|interface [|I1|] extends Base { }|> + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I1", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I1", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === -// class [|Base|] {} +// <|class [|{| isWriteAccess: true |}Base|] {}|> // interface Implemented1 {} // class C1 extends [|Base|] implements Implemented1 { // get e() { return 1; } @@ -545,72 +520,79 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "class", - "name": "class Base", - "textSpan": { - "start": 6, - "length": 4 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 57, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 153, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // <|class [|Base|] {}|> + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 /*FIND ALL REFS*/extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class Base", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "className" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; +// interface Implemented2 {} +// interface Implemented3 {} +// class C2 implements Implemented2, Implemented3 {} +// interface I2 /*FIND ALL REFS*/extends Implemented2, Implemented3 {} -undefined + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -619,7 +601,7 @@ undefined // set e(v) {} // } // interface I1 extends Base { } -// /*FIND ALL REFS*/type [|T|] = { } +// /*FIND ALL REFS*/<|type [|{| isWriteAccess: true, isDefinition: true |}T|] = { }|> // enum E { } // namespace N { } // module M { } @@ -632,75 +614,75 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "type", - "name": "type T = {}", - "textSpan": { - "start": 167, - "length": 1 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 162, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 167, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 162, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // /*FIND ALL REFS*/<|type [|T|] = { }|> + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type T = {}", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -710,7 +692,7 @@ undefined // } // interface I1 extends Base { } // type T = { } -// /*FIND ALL REFS*/enum [|E|] { } +// /*FIND ALL REFS*/<|enum [|{| isWriteAccess: true, isDefinition: true |}E|] { }|> // namespace N { } // module M { } // function fn() {} @@ -722,55 +704,55 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "enum", - "name": "enum E", - "textSpan": { - "start": 180, - "length": 1 - }, - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 175, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 180, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 175, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // /*FIND ALL REFS*/<|enum [|E|] { }|> + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "enum E", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -781,7 +763,7 @@ undefined // interface I1 extends Base { } // type T = { } // enum E { } -// /*FIND ALL REFS*/namespace [|N|] { } +// /*FIND ALL REFS*/<|namespace [|{| isWriteAccess: true, isDefinition: true |}N|] { }|> // module M { } // function fn() {} // var x; @@ -792,55 +774,55 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "module", - "name": "namespace N", - "textSpan": { - "start": 196, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 186, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 196, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 186, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // /*FIND ALL REFS*/<|namespace [|N|] { }|> + // module M { } + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace N", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -852,7 +834,7 @@ undefined // type T = { } // enum E { } // namespace N { } -// /*FIND ALL REFS*/module [|M|] { } +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}M|] { }|> // function fn() {} // var x; // let y; @@ -862,55 +844,55 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "module", - "name": "namespace M", - "textSpan": { - "start": 209, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 202, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 209, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 202, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // /*FIND ALL REFS*/<|module [|M|] { }|> + // function fn() {} + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace M", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -923,7 +905,7 @@ undefined // enum E { } // namespace N { } // module M { } -// /*FIND ALL REFS*/function [|fn|]() {} +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}fn|]() {}|> // var x; // let y; // const z = 1; @@ -932,75 +914,75 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "function", - "name": "function fn(): void", - "textSpan": { - "start": 224, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fn", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 215, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 224, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 215, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // /*FIND ALL REFS*/<|function [|fn|]() {}|> + // var x; + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function fn(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fn", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -1014,7 +996,7 @@ undefined // namespace N { } // module M { } // function fn() {} -// /*FIND ALL REFS*/var [|x|]; +// /*FIND ALL REFS*/<|var [|{| isDefinition: true |}x|];|> // let y; // const z = 1; // interface Implemented2 {} @@ -1022,67 +1004,67 @@ undefined // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "var", - "name": "var x: any", - "textSpan": { - "start": 236, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 232, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 236, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 232, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // /*FIND ALL REFS*/<|var [|x|];|> + // let y; + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var x: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -1097,74 +1079,74 @@ undefined // module M { } // function fn() {} // var x; -// /*FIND ALL REFS*/let [|y|]; +// /*FIND ALL REFS*/<|let [|{| isDefinition: true |}y|];|> // const z = 1; // interface Implemented2 {} // interface Implemented3 {} // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "let", - "name": "let y: any", - "textSpan": { - "start": 243, - "length": 1 - }, - "displayParts": [ - { - "text": "let", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 239, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 243, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 239, - "length": 6 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // /*FIND ALL REFS*/<|let [|y|];|> + // const z = 1; + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "let", + "name": "let y: any", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === // class Base {} // interface Implemented1 {} @@ -1180,69 +1162,66 @@ undefined // function fn() {} // var x; // let y; -// /*FIND ALL REFS*/const [|z|] = 1; +// /*FIND ALL REFS*/<|const [|{| isWriteAccess: true, isDefinition: true |}z|] = 1;|> // interface Implemented2 {} // interface Implemented3 {} // class C2 implements Implemented2, Implemented3 {} // interface I2 extends Implemented2, Implemented3 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "kind": "const", - "name": "const z: 1", - "textSpan": { - "start": 252, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 246, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 252, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForDeclarationKeywords.ts", - "contextSpan": { - "start": 246, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForDeclarationKeywords.ts === + // class Base {} + // interface Implemented1 {} + // class C1 extends Base implements Implemented1 { + // get e() { return 1; } + // set e(v) {} + // } + // interface I1 extends Base { } + // type T = { } + // enum E { } + // namespace N { } + // module M { } + // function fn() {} + // var x; + // let y; + // /*FIND ALL REFS*/<|const [|z|] = 1;|> + // interface Implemented2 {} + // interface Implemented3 {} + // class C2 implements Implemented2, Implemented3 {} + // interface I2 extends Implemented2, Implemented3 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const z: 1", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForEnums.baseline.jsonc b/tests/baselines/reference/referencesForEnums.baseline.jsonc index 975e8da2b3f1e..cebb6889d560b 100644 --- a/tests/baselines/reference/referencesForEnums.baseline.jsonc +++ b/tests/baselines/reference/referencesForEnums.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { -// /*FIND ALL REFS*/[|value1|] = 1, +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}value1|] = 1|>, // "value2" = [|value1|], // 111 = 11 // } @@ -10,109 +11,82 @@ // E.value2; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E.value1 = 1", - "textSpan": { - "start": 13, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "value1", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 13, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 13, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 66, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // /*FIND ALL REFS*/<|[|value1|] = 1|>, + // "value2" = value1, + // 111 = 11 + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.value1 = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value1", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, -// /*FIND ALL REFS*/"[|value2|]" = value1, +// /*FIND ALL REFS*/<|"[|{| isWriteAccess: true, isDefinition: true |}value2|]" = value1|>, // 111 = 11 // } // @@ -121,113 +95,86 @@ // E.[|value2|]; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[\"value2\"] = 1", - "textSpan": { - "start": 30, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"value2\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 29, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 29, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // /*FIND ALL REFS*/<|"[|value2|]" = value1|>, + // 111 = 11 + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[\"value2\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"value2\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, -// "/*FIND ALL REFS*/[|value2|]" = value1, +// <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}value2|]" = value1|>, // 111 = 11 // } // @@ -236,112 +183,85 @@ // E.[|value2|]; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[\"value2\"] = 1", - "textSpan": { - "start": 30, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"value2\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 29, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 29, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 77, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 89, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // <|"/*FIND ALL REFS*/[|value2|]" = value1|>, + // 111 = 11 + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[\"value2\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"value2\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { -// [|value1|] = 1, +// <|[|{| isWriteAccess: true |}value1|] = 1|>, // "value2" = /*FIND ALL REFS*/[|value1|], // 111 = 11 // } @@ -351,107 +271,83 @@ // E.value2; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E.value1 = 1", - "textSpan": { - "start": 13, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "value1", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 13, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 13, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 40, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 66, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // <|[|value1|] = 1|>, + // "value2" = /*FIND ALL REFS*/value1, + // 111 = 11 + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.value1 = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value1", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, // "value2" = value1, -// /*FIND ALL REFS*/[|111|] = 11 +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}111|] = 11|> // } // // E.value1; @@ -459,103 +355,85 @@ // E.value2; // E[[|111|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[111] = 11", - "textSpan": { - "start": 52, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "111", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "11", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 52, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 52, - "length": 8 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 99, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // "value2" = value1, + // /*FIND ALL REFS*/<|[|111|] = 11|> + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[111] = 11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "111", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "11", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { -// [|value1|] = 1, +// <|[|{| isWriteAccess: true |}value1|] = 1|>, // "value2" = [|value1|], // 111 = 11 // } @@ -565,106 +443,82 @@ // E.value2; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E.value1 = 1", - "textSpan": { - "start": 13, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "value1", - "kind": "enumMemberName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 13, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 13, - "length": 10 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 40, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 66, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // <|[|value1|] = 1|>, + // "value2" = value1, + // 111 = 11 + // } + // + // E./*FIND ALL REFS*/value1; + // E["value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E.value1 = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "value1", + "kind": "enumMemberName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, -// "[|value2|]" = value1, +// <|"[|{| isWriteAccess: true |}value2|]" = value1|>, // 111 = 11 // } // @@ -673,110 +527,86 @@ // E.[|value2|]; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[\"value2\"] = 1", - "textSpan": { - "start": 30, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"value2\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 29, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 29, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 89, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // <|"[|value2|]" = value1|>, + // 111 = 11 + // } + // + // E.value1; + // E["/*FIND ALL REFS*/value2"]; + // E.value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[\"value2\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"value2\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, -// "[|value2|]" = value1, +// <|"[|{| isWriteAccess: true |}value2|]" = value1|>, // 111 = 11 // } // @@ -785,111 +615,87 @@ // E./*FIND ALL REFS*/[|value2|]; // E[111]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[\"value2\"] = 1", - "textSpan": { - "start": 30, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"value2\"", - "kind": "enumMemberName" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 29, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 29, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 77, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 89, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // <|"[|value2|]" = value1|>, + // 111 = 11 + // } + // + // E.value1; + // E["value2"]; + // E./*FIND ALL REFS*/value2; + // E[111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[\"value2\"] = 1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"value2\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "numericLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForEnums.ts === // enum E { // value1 = 1, // "value2" = value1, -// [|111|] = 11 +// <|[|{| isWriteAccess: true |}111|] = 11|> // } // // E.value1; @@ -897,94 +703,75 @@ // E.value2; // E[/*FIND ALL REFS*/[|111|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "kind": "enum member", - "name": "(enum member) E[111] = 11", - "textSpan": { - "start": 52, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "enum member", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "111", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "11", - "kind": "numericLiteral" - } - ], - "contextSpan": { - "start": 52, - "length": 8 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "contextSpan": { - "start": 52, - "length": 8 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 99, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForEnums.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForEnums.ts === + // enum E { + // value1 = 1, + // "value2" = value1, + // <|[|111|] = 11|> + // } + // + // E.value1; + // E["value2"]; + // E.value2; + // E[/*FIND ALL REFS*/111]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum member", + "name": "(enum member) E[111] = 11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "111", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "11", + "kind": "numericLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForExportedValues.baseline.jsonc b/tests/baselines/reference/referencesForExportedValues.baseline.jsonc index 05d53fc7b0e1b..1f0dc9970bec3 100644 --- a/tests/baselines/reference/referencesForExportedValues.baseline.jsonc +++ b/tests/baselines/reference/referencesForExportedValues.baseline.jsonc @@ -1,8 +1,21 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesForExportedValues.ts === +// module M { +// /*FIND ALL REFS*/export var variable = 0; +// +// // local use +// var x = variable; +// } +// +// // external use +// M.variable + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExportedValues.ts === // module M { -// export var /*FIND ALL REFS*/[|variable|] = 0; +// <|export var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}variable|] = 0;|> // // // local use // var x = [|variable|]; @@ -11,96 +24,68 @@ undefined // // external use // M.[|variable|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "kind": "var", - "name": "var M.variable: number", - "textSpan": { - "start": 26, - "length": 8 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "variable", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "contextSpan": { - "start": 15, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 70, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExportedValues.ts === + // module M { + // <|export var /*FIND ALL REFS*/[|variable|] = 0;|> + // + // // local use + // var x = variable; + // } + // + // // external use + // M.variable + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var M.variable: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "variable", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExportedValues.ts === // module M { -// export var [|variable|] = 0; +// <|export var [|{| isWriteAccess: true |}variable|] = 0;|> // // // local use // var x = /*FIND ALL REFS*/[|variable|]; @@ -109,93 +94,68 @@ undefined // // external use // M.[|variable|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "kind": "var", - "name": "var M.variable: number", - "textSpan": { - "start": 26, - "length": 8 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "variable", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "contextSpan": { - "start": 15, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExportedValues.ts === + // module M { + // <|export var [|variable|] = 0;|> + // + // // local use + // var x = /*FIND ALL REFS*/variable; + // } + // + // // external use + // M.variable + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var M.variable: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "variable", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExportedValues.ts === // module M { -// export var [|variable|] = 0; +// <|export var [|{| isWriteAccess: true |}variable|] = 0;|> // // // local use // var x = [|variable|]; @@ -204,86 +164,58 @@ undefined // // external use // M./*FIND ALL REFS*/[|variable|] -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "kind": "var", - "name": "var M.variable: number", - "textSpan": { - "start": 26, - "length": 8 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "M", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "variable", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 15, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "contextSpan": { - "start": 15, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForExportedValues.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExportedValues.ts === + // module M { + // <|export var [|variable|] = 0;|> + // + // // local use + // var x = variable; + // } + // + // // external use + // M./*FIND ALL REFS*/variable + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var M.variable: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "M", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "variable", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc b/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc index 51c8579cfa57c..307a86d5ab22e 100644 --- a/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // /*FIND ALL REFS*/new [|C|](); // void [|C|]; // typeof [|C|]; @@ -14,130 +15,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // /*FIND ALL REFS*/new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // /*FIND ALL REFS*/void [|C|]; // typeof [|C|]; @@ -150,130 +75,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // /*FIND ALL REFS*/void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // /*FIND ALL REFS*/typeof [|C|]; @@ -286,130 +135,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // /*FIND ALL REFS*/typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // typeof [|C|]; @@ -422,130 +195,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // /*FIND ALL REFS*/yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // typeof [|C|]; @@ -558,130 +255,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // /*FIND ALL REFS*/await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // typeof [|C|]; @@ -694,130 +315,54 @@ // undefined instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" /*FIND ALL REFS*/in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // typeof [|C|]; @@ -830,130 +375,54 @@ // undefined /*FIND ALL REFS*/instanceof [|C|]; // undefined as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined /*FIND ALL REFS*/instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === -// class [|C|] { +// <|class [|{| isWriteAccess: true |}C|] { // static x = 1; -// } +// }|> // new [|C|](); // void [|C|]; // typeof [|C|]; @@ -966,129 +435,53 @@ // undefined instanceof [|C|]; // undefined /*FIND ALL REFS*/as [|C|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 44, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 126, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 150, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 166, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // <|class [|C|] { + // static x = 1; + // }|> + // new C(); + // void C; + // typeof C; + // delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined /*FIND ALL REFS*/as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === // class C { -// static [|x|] = 1; +// <|static [|{| isWriteAccess: true |}x|] = 1;|> // } // new C(); // void C; @@ -1102,86 +495,71 @@ // undefined instanceof C; // undefined as C; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "kind": "property", - "name": "(property) C.x: number", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 14, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "contextSpan": { - "start": 14, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 66, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForExpressionKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForExpressionKeywords.ts === + // class C { + // <|static [|x|] = 1;|> + // } + // new C(); + // void C; + // typeof C; + // /*FIND ALL REFS*/delete C.x; + // async function* f() { + // yield C; + // await C; + // } + // "x" in C; + // undefined instanceof C; + // undefined as C; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.x: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForExternalModuleNames.baseline.jsonc b/tests/baselines/reference/referencesForExternalModuleNames.baseline.jsonc index 7897e834a0dd7..2c56242938bdc 100644 --- a/tests/baselines/reference/referencesForExternalModuleNames.baseline.jsonc +++ b/tests/baselines/reference/referencesForExternalModuleNames.baseline.jsonc @@ -1,319 +1,214 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// /*FIND ALL REFS*/declare module "[|foo|]" { +// /*FIND ALL REFS*/<|declare module "[|{| isWriteAccess: true, isDefinition: true |}foo|]" { // var f: number; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === -// import f = require("[|foo|]"); +// <|import f = require("[|foo|]");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // /*FIND ALL REFS*/<|declare module "[|foo|]" { + // var f: number; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// declare module "/*FIND ALL REFS*/[|foo|]" { +// <|declare module "/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|]" { // var f: number; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === -// import f = require("[|foo|]"); +// <|import f = require("[|foo|]");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 20, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|declare module "/*FIND ALL REFS*/[|foo|]" { + // var f: number; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_2.ts === -// /*FIND ALL REFS*/import [|f|] = require("foo"); +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}f|] = require("foo");|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_2.ts === + // /*FIND ALL REFS*/<|import [|f|] = require("foo");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "kind": "alias", - "name": "(alias) module \"foo\"\nimport f = require(\"foo\")", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) module \"foo\"\nimport f = require(\"foo\")", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// declare module "[|foo|]" { +// <|declare module "[|{| isWriteAccess: true |}foo|]" { // var f: number; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === -// import f = require("/*FIND ALL REFS*/[|foo|]"); +// <|import f = require("/*FIND ALL REFS*/[|foo|]");|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|declare module "[|foo|]" { + // var f: number; + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "module \"foo\"", - "textSpan": { - "start": 16, - "length": 3 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"foo\"", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 0, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 20, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"foo\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"foo\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForFunctionOverloads.baseline.jsonc b/tests/baselines/reference/referencesForFunctionOverloads.baseline.jsonc index 597fd06c3b225..efc227314027b 100644 --- a/tests/baselines/reference/referencesForFunctionOverloads.baseline.jsonc +++ b/tests/baselines/reference/referencesForFunctionOverloads.baseline.jsonc @@ -1,561 +1,377 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === -// /*FIND ALL REFS*/function [|foo|](x: string); -// function [|foo|](x: string, y: number) { +// /*FIND ALL REFS*/<|function [|{| isDefinition: true |}foo|](x: string);|> +// <|function [|{| isWriteAccess: true, isDefinition: true |}foo|](x: string, y: number) { // [|foo|]('', 43); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "kind": "function", - "name": "function foo(x: string): any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 25, - "length": 55 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === + // /*FIND ALL REFS*/<|function [|foo|](x: string);|> + // function foo(x: string, y: number) { + // foo('', 43); + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: string): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === -// function /*FIND ALL REFS*/[|foo|](x: string); -// function [|foo|](x: string, y: number) { +// <|function /*FIND ALL REFS*/[|{| isDefinition: true |}foo|](x: string);|> +// <|function [|{| isWriteAccess: true, isDefinition: true |}foo|](x: string, y: number) { // [|foo|]('', 43); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === + // <|function /*FIND ALL REFS*/[|foo|](x: string);|> + // function foo(x: string, y: number) { + // foo('', 43); + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "kind": "function", - "name": "function foo(x: string): any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 25, - "length": 55 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: string): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === -// function [|foo|](x: string); -// /*FIND ALL REFS*/function [|foo|](x: string, y: number) { +// <|function [|{| isDefinition: true |}foo|](x: string);|> +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}foo|](x: string, y: number) { // [|foo|]('', 43); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === + // <|function [|foo|](x: string);|> + // /*FIND ALL REFS*/function foo(x: string, y: number) { + // foo('', 43); + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "kind": "function", - "name": "function foo(x: string): any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 25, - "length": 55 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: string): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === -// function [|foo|](x: string); -// function /*FIND ALL REFS*/[|foo|](x: string, y: number) { +// <|function [|{| isDefinition: true |}foo|](x: string);|> +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](x: string, y: number) { // [|foo|]('', 43); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === + // <|function [|foo|](x: string);|> + // function /*FIND ALL REFS*/foo(x: string, y: number) { + // foo('', 43); + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "kind": "function", - "name": "function foo(x: string): any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 25, - "length": 55 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: string): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === -// function [|foo|](x: string); -// function [|foo|](x: string, y: number) { +// <|function [|foo|](x: string);|> +// <|function [|{| isWriteAccess: true |}foo|](x: string, y: number) { // /*FIND ALL REFS*/[|foo|]('', 43); -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionOverloads.ts === + // <|function [|foo|](x: string);|> + // function foo(x: string, y: number) { + // /*FIND ALL REFS*/foo('', 43); + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "kind": "function", - "name": "function foo(x: string): any", - "textSpan": { - "start": 9, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 34, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "contextSpan": { - "start": 25, - "length": 55 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 66, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionOverloads.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function foo(x: string): any", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForFunctionParameter.baseline.jsonc b/tests/baselines/reference/referencesForFunctionParameter.baseline.jsonc index f07451ac82d45..fa62fd9889c56 100644 --- a/tests/baselines/reference/referencesForFunctionParameter.baseline.jsonc +++ b/tests/baselines/reference/referencesForFunctionParameter.baseline.jsonc @@ -1,281 +1,195 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionParameter.ts === // var x; // var n; // -// function n(x: number, /*FIND ALL REFS*/[|n|]: number) { -// [|n|] = 32; +// function n(x: number, /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}n|]: number|>) { +// [|{| isWriteAccess: true |}n|] = 32; // x = [|n|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "kind": "parameter", - "name": "(parameter) n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "n", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 37, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "contextSpan": { - "start": 37, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionParameter.ts === + // var x; + // var n; + // + // function n(x: number, /*FIND ALL REFS*/<|[|n|]: number|>) { + // n = 32; + // x = n; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "n", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionParameter.ts === // var x; // var n; // -// function n(x: number, [|n|]: number) { -// /*FIND ALL REFS*/[|n|] = 32; +// function n(x: number, <|[|{| isWriteAccess: true |}n|]: number|>) { +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}n|] = 32; // x = [|n|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "kind": "parameter", - "name": "(parameter) n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "n", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 37, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "contextSpan": { - "start": 37, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionParameter.ts === + // var x; + // var n; + // + // function n(x: number, <|[|n|]: number|>) { + // /*FIND ALL REFS*/n = 32; + // x = n; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "n", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForFunctionParameter.ts === // var x; // var n; // -// function n(x: number, [|n|]: number) { -// [|n|] = 32; +// function n(x: number, <|[|{| isWriteAccess: true |}n|]: number|>) { +// [|{| isWriteAccess: true |}n|] = 32; // x = /*FIND ALL REFS*/[|n|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "kind": "parameter", - "name": "(parameter) n: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "n", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 37, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "contextSpan": { - "start": 37, - "length": 9 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 54, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForFunctionParameter.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForFunctionParameter.ts === + // var x; + // var n; + // + // function n(x: number, <|[|n|]: number|>) { + // n = 32; + // x = /*FIND ALL REFS*/n; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "parameter", + "name": "(parameter) n: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "n", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobals.baseline.jsonc b/tests/baselines/reference/referencesForGlobals.baseline.jsonc index 358a7a28b3fa0..6c90aea3f25b5 100644 --- a/tests/baselines/reference/referencesForGlobals.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobals.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// /*FIND ALL REFS*/var [|global|] = 2; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}global|] = 2;|> // // class foo { // constructor (public global) { } @@ -21,96 +22,68 @@ // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|global|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "var", - "name": "var global: number", - "textSpan": { - "start": 4, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "global", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 168, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 246, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 8, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // /*FIND ALL REFS*/<|var [|global|] = 2;|> + // + // class foo { + // constructor (public global) { } + // public f(global) { } + // public f2(global) { } + // } + // + // class bar { + // constructor () { + // var n = global; + // + // var f = new foo(''); + // f.global = ''; + // } + // } + // + // var k = global; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var global: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "global", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// var /*FIND ALL REFS*/[|global|] = 2; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}global|] = 2;|> // // class foo { // constructor (public global) { } @@ -132,96 +105,68 @@ // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|global|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "var", - "name": "var global: number", - "textSpan": { - "start": 4, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "global", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 168, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 246, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 8, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|var /*FIND ALL REFS*/[|global|] = 2;|> + // + // class foo { + // constructor (public global) { } + // public f(global) { } + // public f2(global) { } + // } + // + // class bar { + // constructor () { + // var n = global; + // + // var f = new foo(''); + // f.global = ''; + // } + // } + // + // var k = global; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var global: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "global", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// var [|global|] = 2; +// <|var [|{| isWriteAccess: true |}global|] = 2;|> // // class foo { // constructor (public global) { } @@ -243,92 +188,68 @@ // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|global|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "var", - "name": "var global: number", - "textSpan": { - "start": 4, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "global", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 168, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 246, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|var [|global|] = 2;|> + // + // class foo { + // constructor (public global) { } + // public f(global) { } + // public f2(global) { } + // } + // + // class bar { + // constructor () { + // var n = /*FIND ALL REFS*/global; + // + // var f = new foo(''); + // f.global = ''; + // } + // } + // + // var k = global; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var global: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "global", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// var [|global|] = 2; +// <|var [|{| isWriteAccess: true |}global|] = 2;|> // // class foo { // constructor (public global) { } @@ -350,92 +271,68 @@ // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|global|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "var", - "name": "var global: number", - "textSpan": { - "start": 4, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "global", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 168, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 246, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|var [|global|] = 2;|> + // + // class foo { + // constructor (public global) { } + // public f(global) { } + // public f2(global) { } + // } + // + // class bar { + // constructor () { + // var n = global; + // + // var f = new foo(''); + // f.global = ''; + // } + // } + // + // var k = /*FIND ALL REFS*/global; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var global: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "global", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// var [|global|] = 2; +// <|var [|{| isWriteAccess: true |}global|] = 2;|> // // class foo { // constructor (public global) { } @@ -457,86 +354,59 @@ // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = /*FIND ALL REFS*/[|global|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "var", - "name": "var global: number", - "textSpan": { - "start": 4, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "global", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 15 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 168, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 246, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 8, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|var [|global|] = 2;|> + // + // class foo { + // constructor (public global) { } + // public f(global) { } + // public f2(global) { } + // } + // + // class bar { + // constructor () { + // var n = global; + // + // var f = new foo(''); + // f.global = ''; + // } + // } + // + // var k = global; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var global: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "global", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobals2.baseline.jsonc b/tests/baselines/reference/referencesForGlobals2.baseline.jsonc index 7c59139a0a2c0..3cf0d90479858 100644 --- a/tests/baselines/reference/referencesForGlobals2.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobals2.baseline.jsonc @@ -1,195 +1,120 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// /*FIND ALL REFS*/class [|globalClass|] { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}globalClass|] { // public f() { } -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var c = [|globalClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "class", - "name": "class globalClass", - "textSpan": { - "start": 6, - "length": 11 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // /*FIND ALL REFS*/<|class [|globalClass|] { + // public f() { } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class globalClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// class /*FIND ALL REFS*/[|globalClass|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}globalClass|] { // public f() { } -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var c = [|globalClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "class", - "name": "class globalClass", - "textSpan": { - "start": 6, - "length": 11 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|class /*FIND ALL REFS*/[|globalClass|] { + // public f() { } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class globalClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// class [|globalClass|] { +// <|class [|{| isWriteAccess: true |}globalClass|] { // public f() { } -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var c = /*FIND ALL REFS*/[|globalClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "class", - "name": "class globalClass", - "textSpan": { - "start": 6, - "length": 11 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|class [|globalClass|] { + // public f() { } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class globalClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobals3.baseline.jsonc b/tests/baselines/reference/referencesForGlobals3.baseline.jsonc index fce2afc73076a..168bbaa851fa9 100644 --- a/tests/baselines/reference/referencesForGlobals3.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobals3.baseline.jsonc @@ -1,195 +1,120 @@ +// === findAllReferences === +// === /tests/cases/fourslash/referencesForGlobals_1.ts === +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}globalInterface|] { +// f(); +// }|> + // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var i: [|globalInterface|]; -// === /tests/cases/fourslash/referencesForGlobals_1.ts === -// /*FIND ALL REFS*/interface [|globalInterface|] { -// f(); -// } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // /*FIND ALL REFS*/<|interface [|globalInterface|] { + // f(); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "interface", - "name": "interface globalInterface", - "textSpan": { - "start": 10, - "length": 15 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 7, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface globalInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalInterface", + "kind": "interfaceName" + } ] - } -] + } + ] + -// === /tests/cases/fourslash/referencesForGlobals_2.ts === -// var i: [|globalInterface|]; +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// interface /*FIND ALL REFS*/[|globalInterface|] { +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}globalInterface|] { // f(); -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "interface", - "name": "interface globalInterface", - "textSpan": { - "start": 10, - "length": 15 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 7, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } +// === /tests/cases/fourslash/referencesForGlobals_2.ts === +// var i: [|globalInterface|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|interface /*FIND ALL REFS*/[|globalInterface|] { + // f(); + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface globalInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalInterface", + "kind": "interfaceName" + } ] - } -] + } + ] + -// === /tests/cases/fourslash/referencesForGlobals_2.ts === -// var i: /*FIND ALL REFS*/[|globalInterface|]; +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// interface [|globalInterface|] { +// <|interface [|{| isWriteAccess: true |}globalInterface|] { // f(); -// } +// }|> + +// === /tests/cases/fourslash/referencesForGlobals_2.ts === +// var i: /*FIND ALL REFS*/[|globalInterface|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|interface [|globalInterface|] { + // f(); + // }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "interface", - "name": "interface globalInterface", - "textSpan": { - "start": 10, - "length": 15 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 7, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface globalInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalInterface", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobals4.baseline.jsonc b/tests/baselines/reference/referencesForGlobals4.baseline.jsonc index aa34de3a017df..9c4b8478cce74 100644 --- a/tests/baselines/reference/referencesForGlobals4.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobals4.baseline.jsonc @@ -1,195 +1,120 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// /*FIND ALL REFS*/module [|globalModule|] { +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}globalModule|] { // export f() { }; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|globalModule|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "namespace globalModule", - "textSpan": { - "start": 7, - "length": 12 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // /*FIND ALL REFS*/<|module [|globalModule|] { + // export f() { }; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace globalModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// module /*FIND ALL REFS*/[|globalModule|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}globalModule|] { // export f() { }; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|globalModule|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "namespace globalModule", - "textSpan": { - "start": 7, - "length": 12 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|module /*FIND ALL REFS*/[|globalModule|] { + // export f() { }; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace globalModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === -// module [|globalModule|] { +// <|module [|{| isWriteAccess: true |}globalModule|] { // export f() { }; -// } +// }|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = /*FIND ALL REFS*/[|globalModule|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "module", - "name": "namespace globalModule", - "textSpan": { - "start": 7, - "length": 12 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 44 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 44 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // <|module [|globalModule|] { + // export f() { }; + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace globalModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobals5.baseline.jsonc b/tests/baselines/reference/referencesForGlobals5.baseline.jsonc index af5a96cf9f66a..1e92663735946 100644 --- a/tests/baselines/reference/referencesForGlobals5.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobals5.baseline.jsonc @@ -1,345 +1,276 @@ -// === /tests/cases/fourslash/referencesForGlobals_2.ts === -// var m = [|globalAlias|]; - +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === // module globalModule { // export var x; // } // -// /*FIND ALL REFS*/import [|globalAlias|] = globalModule; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "alias", - "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", - "textSpan": { - "start": 50, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 43, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 43, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}globalAlias|] = globalModule;|> // === /tests/cases/fourslash/referencesForGlobals_2.ts === // var m = [|globalAlias|]; + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // module globalModule { + // export var x; + // } + // + // /*FIND ALL REFS*/<|import [|globalAlias|] = globalModule;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === // module globalModule { // export var x; // } // -// import /*FIND ALL REFS*/[|globalAlias|] = globalModule; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}globalAlias|] = globalModule;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "alias", - "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", - "textSpan": { - "start": 50, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 43, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 43, - "length": 34 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false, - "isDefinition": false - } +// === /tests/cases/fourslash/referencesForGlobals_2.ts === +// var m = [|globalAlias|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // module globalModule { + // export var x; + // } + // + // <|import /*FIND ALL REFS*/[|globalAlias|] = globalModule;|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } ] - } -] + } + ] -// === /tests/cases/fourslash/referencesForGlobals_2.ts === -// var m = /*FIND ALL REFS*/[|globalAlias|]; + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobals_1.ts === // module globalModule { // export var x; // } // -// import [|globalAlias|] = globalModule; +// <|import [|{| isWriteAccess: true |}globalAlias|] = globalModule;|> + +// === /tests/cases/fourslash/referencesForGlobals_2.ts === +// var m = /*FIND ALL REFS*/[|globalAlias|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobals_1.ts === + // module globalModule { + // export var x; + // } + // + // <|import [|globalAlias|] = globalModule;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "kind": "alias", - "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", - "textSpan": { - "start": 50, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalAlias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 43, - "length": 34 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_1.ts", - "contextSpan": { - "start": 43, - "length": 34 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace globalAlias\nimport globalAlias = globalModule", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalAlias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalModule", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForGlobalsInExternalModule.baseline.jsonc b/tests/baselines/reference/referencesForGlobalsInExternalModule.baseline.jsonc index 1643152162016..87112d32aa0d2 100644 --- a/tests/baselines/reference/referencesForGlobalsInExternalModule.baseline.jsonc +++ b/tests/baselines/reference/referencesForGlobalsInExternalModule.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === -// /*FIND ALL REFS*/var [|topLevelVar|] = 2; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}topLevelVar|] = 2;|> // var topLevelVar2 = [|topLevelVar|]; // // class topLevelClass { } @@ -15,78 +16,65 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "var", - "name": "var topLevelVar: number", - "textSpan": { - "start": 4, - "length": 11 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // /*FIND ALL REFS*/<|var [|topLevelVar|] = 2;|> + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var topLevelVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === -// var /*FIND ALL REFS*/[|topLevelVar|] = 2; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}topLevelVar|] = 2;|> // var topLevelVar2 = [|topLevelVar|]; // // class topLevelClass { } @@ -102,78 +90,65 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "var", - "name": "var topLevelVar: number", - "textSpan": { - "start": 4, - "length": 11 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 40, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // <|var /*FIND ALL REFS*/[|topLevelVar|] = 2;|> + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var topLevelVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === -// var [|topLevelVar|] = 2; +// <|var [|{| isWriteAccess: true |}topLevelVar|] = 2;|> // var topLevelVar2 = /*FIND ALL REFS*/[|topLevelVar|]; // // class topLevelClass { } @@ -189,79 +164,68 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "var", - "name": "var topLevelVar: number", - "textSpan": { - "start": 4, - "length": 11 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 4, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 40, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // <|var [|topLevelVar|] = 2;|> + // var topLevelVar2 = /*FIND ALL REFS*/topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var topLevelVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; // -// /*FIND ALL REFS*/class [|topLevelClass|] { } +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}topLevelClass|] { }|> // var c = new [|topLevelClass|](); // // interface topLevelInterface { } @@ -274,69 +238,56 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "class", - "name": "class topLevelClass", - "textSpan": { - "start": 60, - "length": 13 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 54, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 54, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 90, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // /*FIND ALL REFS*/<|class [|topLevelClass|] { }|> + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class topLevelClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; // -// class /*FIND ALL REFS*/[|topLevelClass|] { } +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}topLevelClass|] { }|> // var c = new [|topLevelClass|](); // // interface topLevelInterface { } @@ -349,69 +300,56 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "class", - "name": "class topLevelClass", - "textSpan": { - "start": 60, - "length": 13 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 54, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 54, - "length": 23 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 90, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // <|class /*FIND ALL REFS*/[|topLevelClass|] { }|> + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class topLevelClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; // -// class [|topLevelClass|] { } +// <|class [|{| isWriteAccess: true |}topLevelClass|] { }|> // var c = new /*FIND ALL REFS*/[|topLevelClass|](); // // interface topLevelInterface { } @@ -424,62 +362,51 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "class", - "name": "class topLevelClass", - "textSpan": { - "start": 60, - "length": 13 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 54, - "length": 23 - } - }, - "references": [ - { - "textSpan": { - "start": 60, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 54, - "length": 23 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // <|class [|topLevelClass|] { }|> + // var c = new /*FIND ALL REFS*/topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class topLevelClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -487,7 +414,7 @@ // class topLevelClass { } // var c = new topLevelClass(); // -// /*FIND ALL REFS*/interface [|topLevelInterface|] { } +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}topLevelInterface|] { }|> // var i: [|topLevelInterface|]; // // module topLevelModule { @@ -497,64 +424,51 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "interface", - "name": "interface topLevelInterface", - "textSpan": { - "start": 118, - "length": 17 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 108, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 108, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 147, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // /*FIND ALL REFS*/<|interface [|topLevelInterface|] { }|> + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface topLevelInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelInterface", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -562,7 +476,7 @@ // class topLevelClass { } // var c = new topLevelClass(); // -// interface /*FIND ALL REFS*/[|topLevelInterface|] { } +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}topLevelInterface|] { }|> // var i: [|topLevelInterface|]; // // module topLevelModule { @@ -572,64 +486,51 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "interface", - "name": "interface topLevelInterface", - "textSpan": { - "start": 118, - "length": 17 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 108, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 108, - "length": 31 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 147, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // <|interface /*FIND ALL REFS*/[|topLevelInterface|] { }|> + // var i: topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface topLevelInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelInterface", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -637,7 +538,7 @@ // class topLevelClass { } // var c = new topLevelClass(); // -// interface [|topLevelInterface|] { } +// <|interface [|{| isWriteAccess: true |}topLevelInterface|] { }|> // var i: /*FIND ALL REFS*/[|topLevelInterface|]; // // module topLevelModule { @@ -647,62 +548,51 @@ // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "interface", - "name": "interface topLevelInterface", - "textSpan": { - "start": 118, - "length": 17 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelInterface", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 108, - "length": 31 - } - }, - "references": [ - { - "textSpan": { - "start": 118, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 108, - "length": 31 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 147, - "length": 17 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // <|interface [|topLevelInterface|] { }|> + // var i: /*FIND ALL REFS*/topLevelInterface; + // + // module topLevelModule { + // export var x; + // } + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface topLevelInterface", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelInterface", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -713,71 +603,58 @@ // interface topLevelInterface { } // var i: topLevelInterface; // -// /*FIND ALL REFS*/module [|topLevelModule|] { +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}topLevelModule|] { // export var x; -// } +// }|> // var x = [|topLevelModule|].x; // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "module", - "name": "namespace topLevelModule", - "textSpan": { - "start": 174, - "length": 14 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 167, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 174, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 167, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 219, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // /*FIND ALL REFS*/<|module [|topLevelModule|] { + // export var x; + // }|> + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace topLevelModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelModule", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -788,71 +665,58 @@ // interface topLevelInterface { } // var i: topLevelInterface; // -// module /*FIND ALL REFS*/[|topLevelModule|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}topLevelModule|] { // export var x; -// } +// }|> // var x = [|topLevelModule|].x; // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "module", - "name": "namespace topLevelModule", - "textSpan": { - "start": 174, - "length": 14 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 167, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 174, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 167, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 219, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // <|module /*FIND ALL REFS*/[|topLevelModule|] { + // export var x; + // }|> + // var x = topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace topLevelModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelModule", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === // var topLevelVar = 2; // var topLevelVar2 = topLevelVar; @@ -863,65 +727,51 @@ // interface topLevelInterface { } // var i: topLevelInterface; // -// module [|topLevelModule|] { +// <|module [|{| isWriteAccess: true |}topLevelModule|] { // export var x; -// } +// }|> // var x = /*FIND ALL REFS*/[|topLevelModule|].x; // // export = x; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "kind": "module", - "name": "namespace topLevelModule", - "textSpan": { - "start": 174, - "length": 14 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "topLevelModule", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 167, - "length": 43 - } - }, - "references": [ - { - "textSpan": { - "start": 174, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "contextSpan": { - "start": 167, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 219, - "length": 14 - }, - "fileName": "/tests/cases/fourslash/referencesForGlobalsInExternalModule.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForGlobalsInExternalModule.ts === + // var topLevelVar = 2; + // var topLevelVar2 = topLevelVar; + // + // class topLevelClass { } + // var c = new topLevelClass(); + // + // interface topLevelInterface { } + // var i: topLevelInterface; + // + // <|module [|topLevelModule|] { + // export var x; + // }|> + // var x = /*FIND ALL REFS*/topLevelModule.x; + // + // export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace topLevelModule", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "topLevelModule", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForIllegalAssignment.baseline.jsonc b/tests/baselines/reference/referencesForIllegalAssignment.baseline.jsonc index 1b695a160d55a..6ceb26706701f 100644 --- a/tests/baselines/reference/referencesForIllegalAssignment.baseline.jsonc +++ b/tests/baselines/reference/referencesForIllegalAssignment.baseline.jsonc @@ -1,107 +1,83 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesForIllegalAssignment.ts === +// f/*FIND ALL REFS*/oo = foo; +// var bar = function () { }; +// bar = bar + 1; + -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesForIllegalAssignment.ts === +// foo = fo/*FIND ALL REFS*/o; +// var bar = function () { }; +// bar = bar + 1; + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIllegalAssignment.ts === // foo = foo; -// var /*FIND ALL REFS*/[|bar|] = function () { }; -// [|bar|] = [|bar|] + 1; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}bar|] = function () { };|> +// [|{| isWriteAccess: true |}bar|] = [|bar|] + 1; + + // === Definitions === + // === /tests/cases/fourslash/referencesForIllegalAssignment.ts === + // foo = foo; + // <|var /*FIND ALL REFS*/[|bar|] = function () { };|> + // bar = bar + 1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIllegalAssignment.ts", - "kind": "var", - "name": "var bar: () => void", - "textSpan": { - "start": 15, - "length": 3 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 11, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 15, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForIllegalAssignment.ts", - "contextSpan": { - "start": 11, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 38, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForIllegalAssignment.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 44, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForIllegalAssignment.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var bar: () => void", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForImports.baseline.jsonc b/tests/baselines/reference/referencesForImports.baseline.jsonc index ae27fc39d0bb0..aa8257361009c 100644 --- a/tests/baselines/reference/referencesForImports.baseline.jsonc +++ b/tests/baselines/reference/referencesForImports.baseline.jsonc @@ -1,286 +1,226 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForImports.ts === // declare module "jquery" { // function $(s: string): any; // export = $; // } -// /*FIND ALL REFS*/import [|$|] = require("jquery"); +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}$|] = require("jquery");|> // [|$|]("a"); // import $ = require("jquery"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "kind": "alias", - "name": "import $ = require(\"jquery\")", - "textSpan": { - "start": 83, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "$", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 76, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "contextSpan": { - "start": 76, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 106, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForImports.ts === + // declare module "jquery" { + // function $(s: string): any; + // export = $; + // } + // /*FIND ALL REFS*/<|import [|$|] = require("jquery");|> + // $("a"); + // import $ = require("jquery"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import $ = require(\"jquery\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "$", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForImports.ts === // declare module "jquery" { // function $(s: string): any; // export = $; // } -// import /*FIND ALL REFS*/[|$|] = require("jquery"); +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}$|] = require("jquery");|> // [|$|]("a"); // import $ = require("jquery"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "kind": "alias", - "name": "import $ = require(\"jquery\")", - "textSpan": { - "start": 83, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "$", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 76, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "contextSpan": { - "start": 76, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 106, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForImports.ts === + // declare module "jquery" { + // function $(s: string): any; + // export = $; + // } + // <|import /*FIND ALL REFS*/[|$|] = require("jquery");|> + // $("a"); + // import $ = require("jquery"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import $ = require(\"jquery\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "$", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForImports.ts === // declare module "jquery" { // function $(s: string): any; // export = $; // } -// import [|$|] = require("jquery"); +// <|import [|{| isWriteAccess: true |}$|] = require("jquery");|> // /*FIND ALL REFS*/[|$|]("a"); // import $ = require("jquery"); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "kind": "alias", - "name": "import $ = require(\"jquery\")", - "textSpan": { - "start": 83, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "$", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 76, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "contextSpan": { - "start": 76, - "length": 29 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 106, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForImports.ts === + // declare module "jquery" { + // function $(s: string): any; + // export = $; + // } + // <|import [|$|] = require("jquery");|> + // /*FIND ALL REFS*/$("a"); + // import $ = require("jquery"); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import $ = require(\"jquery\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "$", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForImports.ts === // declare module "jquery" { // function $(s: string): any; @@ -288,85 +228,73 @@ // } // import $ = require("jquery"); // $("a"); -// /*FIND ALL REFS*/import [|$|] = require("jquery"); +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}$|] = require("jquery");|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForImports.ts === + // declare module "jquery" { + // function $(s: string): any; + // export = $; + // } + // import $ = require("jquery"); + // $("a"); + // /*FIND ALL REFS*/<|import [|$|] = require("jquery");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "kind": "alias", - "name": "import $ = require(\"jquery\")", - "textSpan": { - "start": 121, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "$", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 114, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 121, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "contextSpan": { - "start": 114, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import $ = require(\"jquery\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "$", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForImports.ts === // declare module "jquery" { // function $(s: string): any; @@ -374,81 +302,66 @@ // } // import $ = require("jquery"); // $("a"); -// import /*FIND ALL REFS*/[|$|] = require("jquery"); +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}$|] = require("jquery");|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForImports.ts === + // declare module "jquery" { + // function $(s: string): any; + // export = $; + // } + // import $ = require("jquery"); + // $("a"); + // <|import /*FIND ALL REFS*/[|$|] = require("jquery");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "kind": "alias", - "name": "import $ = require(\"jquery\")", - "textSpan": { - "start": 121, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "$", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"jquery\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 114, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 121, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForImports.ts", - "contextSpan": { - "start": 114, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import $ = require(\"jquery\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "$", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"jquery\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForIndexProperty.baseline.jsonc b/tests/baselines/reference/referencesForIndexProperty.baseline.jsonc index fcba14a72802a..177bddfedfb8a 100644 --- a/tests/baselines/reference/referencesForIndexProperty.baseline.jsonc +++ b/tests/baselines/reference/referencesForIndexProperty.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty.ts === // class Foo { -// /*FIND ALL REFS*/[|property|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}property|]: number;|> // method(): void { } // } // @@ -8,199 +9,159 @@ // f["[|property|]"]; // f["method"]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "kind": "property", - "name": "(property) Foo.property: number", - "textSpan": { - "start": 16, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "contextSpan": { - "start": 16, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 75, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty.ts === + // class Foo { + // /*FIND ALL REFS*/<|[|property|]: number;|> + // method(): void { } + // } + // + // var f: Foo; + // f["property"]; + // f["method"]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.property: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty.ts === // class Foo { // property: number; -// /*FIND ALL REFS*/[|method|](): void { } +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}method|](): void { }|> // } // // var f: Foo; // f["property"]; // f["[|method|]"]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "kind": "method", - "name": "(method) Foo.method(): void", - "textSpan": { - "start": 38, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 38, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "contextSpan": { - "start": 38, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 90, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty.ts === + // class Foo { + // property: number; + // /*FIND ALL REFS*/<|[|method|](): void { }|> + // } + // + // var f: Foo; + // f["property"]; + // f["method"]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty.ts === // class Foo { -// [|property|]: number; +// <|[|property|]: number;|> // method(): void { } // } // @@ -208,188 +169,149 @@ // f["/*FIND ALL REFS*/[|property|]"]; // f["method"]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "kind": "property", - "name": "(property) Foo.property: number", - "textSpan": { - "start": 16, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "contextSpan": { - "start": 16, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 75, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty.ts === + // class Foo { + // <|[|property|]: number;|> + // method(): void { } + // } + // + // var f: Foo; + // f["/*FIND ALL REFS*/property"]; + // f["method"]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo.property: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty.ts === // class Foo { // property: number; -// [|method|](): void { } +// <|[|{| isWriteAccess: true |}method|](): void { }|> // } // // var f: Foo; // f["property"]; // f["/*FIND ALL REFS*/[|method|]"]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "kind": "method", - "name": "(method) Foo.method(): void", - "textSpan": { - "start": 38, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 38, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "contextSpan": { - "start": 38, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 90, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty.ts === + // class Foo { + // property: number; + // <|[|method|](): void { }|> + // } + // + // var f: Foo; + // f["property"]; + // f["/*FIND ALL REFS*/method"]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForIndexProperty2.baseline.jsonc b/tests/baselines/reference/referencesForIndexProperty2.baseline.jsonc index 77e902c23eab7..07b626a656f6c 100644 --- a/tests/baselines/reference/referencesForIndexProperty2.baseline.jsonc +++ b/tests/baselines/reference/referencesForIndexProperty2.baseline.jsonc @@ -1,36 +1,25 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty2.ts === // var a; -// a["/*FIND ALL REFS*/[|blah|]"]; +// a["/*FIND ALL REFS*/[|{| isInString: true |}blah|]"]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty2.ts", - "kind": "var", - "name": "blah", - "textSpan": { - "start": 10, - "length": 4 - }, - "displayParts": [ - { - "text": "\"blah\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty2.ts", - "isWriteAccess": false, - "isInString": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty2.ts === + // var a; + // a["/*FIND ALL REFS*/[|blah|]"]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "blah", + "displayParts": [ + { + "text": "\"blah\"", + "kind": "stringLiteral" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForIndexProperty3.baseline.jsonc b/tests/baselines/reference/referencesForIndexProperty3.baseline.jsonc index ee9c3c7240570..dca2cbc4f8af0 100644 --- a/tests/baselines/reference/referencesForIndexProperty3.baseline.jsonc +++ b/tests/baselines/reference/referencesForIndexProperty3.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty3.ts === // interface Object { -// /*FIND ALL REFS*/[|toMyString|](); +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}toMyString|]();|> // } // // var y: Object; @@ -9,112 +10,84 @@ // var x = {}; // x["[|toMyString|]"](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "kind": "method", - "name": "(method) Object.toMyString(): any", - "textSpan": { - "start": 23, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "toMyString", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "contextSpan": { - "start": 23, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 57, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 87, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty3.ts === + // interface Object { + // /*FIND ALL REFS*/<|[|toMyString|]();|> + // } + // + // var y: Object; + // y.toMyString(); + // + // var x = {}; + // x["toMyString"](); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Object.toMyString(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "toMyString", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty3.ts === // interface Object { -// [|toMyString|](); +// <|[|toMyString|]();|> // } // // var y: Object; @@ -123,109 +96,84 @@ // var x = {}; // x["[|toMyString|]"](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "kind": "method", - "name": "(method) Object.toMyString(): any", - "textSpan": { - "start": 23, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "toMyString", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "contextSpan": { - "start": 23, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 57, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 87, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty3.ts === + // interface Object { + // <|[|toMyString|]();|> + // } + // + // var y: Object; + // y./*FIND ALL REFS*/toMyString(); + // + // var x = {}; + // x["toMyString"](); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Object.toMyString(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "toMyString", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForIndexProperty3.ts === // interface Object { -// [|toMyString|](); +// <|[|toMyString|]();|> // } // // var y: Object; @@ -234,102 +182,74 @@ // var x = {}; // x["/*FIND ALL REFS*/[|toMyString|]"](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "kind": "method", - "name": "(method) Object.toMyString(): any", - "textSpan": { - "start": 23, - "length": 10 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "toMyString", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 23, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "contextSpan": { - "start": 23, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 57, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 87, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/referencesForIndexProperty3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForIndexProperty3.ts === + // interface Object { + // <|[|toMyString|]();|> + // } + // + // var y: Object; + // y.toMyString(); + // + // var x = {}; + // x["/*FIND ALL REFS*/toMyString"](); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Object.toMyString(): any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "toMyString", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties.baseline.jsonc index f1367ed7129cb..a6556c68b6677 100644 --- a/tests/baselines/reference/referencesForInheritedProperties.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties.baseline.jsonc @@ -1,16 +1,17 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties.ts === // interface interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}doStuff|](): void;|> // } // // interface interface2 extends interface1{ -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // } // // class class1 implements interface2 { -// [|doStuff|]() { +// <|[|{| defId: 2, isWriteAccess: true |}doStuff|]() { // -// } +// }|> // } // // class class2 extends class1 { @@ -18,279 +19,222 @@ // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 27, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties.ts === + // interface interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|](): void;|> + // } + // + // interface interface2 extends interface1{ + // <|[|{| defId: 1 |}doStuff|](): void;|> + // } + // + // class class1 implements interface2 { + // <|[|{| defId: 2 |}doStuff|]() { + // + // }|> + // } + // + // class class2 extends class1 { + // + // } + // + // var v: class2; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 93, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 93, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 154, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 154, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 154, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 154, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 227, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties.ts === // interface interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 0 |}doStuff|](): void;|> // } // // interface interface2 extends interface1{ -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 1, isDefinition: true |}doStuff|](): void;|> // } // // class class1 implements interface2 { -// [|doStuff|]() { +// <|[|{| defId: 2, isWriteAccess: true |}doStuff|]() { // -// } +// }|> // } // // class class2 extends class1 { @@ -298,279 +242,222 @@ // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 27, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties.ts === + // interface interface1 { + // <|[|{| defId: 0 |}doStuff|](): void;|> + // } + // + // interface interface2 extends interface1{ + // /*FIND ALL REFS*/<|[|{| defId: 1 |}doStuff|](): void;|> + // } + // + // class class1 implements interface2 { + // <|[|{| defId: 2 |}doStuff|]() { + // + // }|> + // } + // + // class class2 extends class1 { + // + // } + // + // var v: class2; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 93, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 93, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 154, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 154, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 154, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 154, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 227, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties.ts === // interface interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 0 |}doStuff|](): void;|> // } // // interface interface2 extends interface1{ -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // } // // class class1 implements interface2 { -// /*FIND ALL REFS*/[|doStuff|]() { +// /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}doStuff|]() { // -// } +// }|> // } // // class class2 extends class1 { @@ -578,279 +465,222 @@ // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties.ts === + // interface interface1 { + // <|[|{| defId: 0 |}doStuff|](): void;|> + // } + // + // interface interface2 extends interface1{ + // <|[|{| defId: 1 |}doStuff|](): void;|> + // } + // + // class class1 implements interface2 { + // /*FIND ALL REFS*/<|[|{| defId: 2 |}doStuff|]() { + // + // }|> + // } + // + // class class2 extends class1 { + // + // } + // + // var v: class2; + // v.doStuff(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 27, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 93, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 93, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 154, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 154, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 154, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 154, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 227, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties.ts === // interface interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 0 |}doStuff|](): void;|> // } // // interface interface2 extends interface1{ -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // } // // class class1 implements interface2 { -// [|doStuff|]() { +// <|[|{| defId: 2, isWriteAccess: true |}doStuff|]() { // -// } +// }|> // } // // class class2 extends class1 { @@ -858,258 +688,202 @@ // } // // var v: class2; -// v./*FIND ALL REFS*/[|doStuff|](); +// v./*FIND ALL REFS*/[|{| defId: 2 |}doStuff|](); + + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties.ts === + // interface interface1 { + // <|[|{| defId: 0 |}doStuff|](): void;|> + // } + // + // interface interface2 extends interface1{ + // <|[|{| defId: 1 |}doStuff|](): void;|> + // } + // + // class class1 implements interface2 { + // <|[|{| defId: 2 |}doStuff|]() { + // + // }|> + // } + // + // class class2 extends class1 { + // + // } + // + // var v: class2; + // v./*FIND ALL REFS*/doStuff(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 27, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 93, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 93, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 93, - "length": 16 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 154, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 154, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 154, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "contextSpan": { - "start": 154, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 227, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties.ts", - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties2.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties2.baseline.jsonc index fb877023de3a3..874cce62cf313 100644 --- a/tests/baselines/reference/referencesForInheritedProperties2.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties2.baseline.jsonc @@ -1,19 +1,20 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties2.ts === // interface interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}doStuff|](): void;|> // } // // interface interface2 { -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // } // // interface interface2 extends interface1 { // } // // class class1 implements interface2 { -// [|doStuff|]() { +// <|[|{| defId: 2, isWriteAccess: true |}doStuff|]() { // -// } +// }|> // } // // class class2 extends class1 { @@ -21,262 +22,205 @@ // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 27, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 27, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "contextSpan": { - "start": 27, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties2.ts === + // interface interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|](): void;|> + // } + // + // interface interface2 { + // <|[|{| defId: 1 |}doStuff|](): void;|> + // } + // + // interface interface2 extends interface1 { + // } + // + // class class1 implements interface2 { + // <|[|{| defId: 2 |}doStuff|]() { + // + // }|> + // } + // + // class class2 extends class1 { + // + // } + // + // var v: class2; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 74, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 74, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "contextSpan": { - "start": 74, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 180, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 180, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 180, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "contextSpan": { - "start": 180, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 253, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties3.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties3.baseline.jsonc index 615bca7098aa0..171a307796461 100644 --- a/tests/baselines/reference/referencesForInheritedProperties3.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties3.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === // interface interface1 extends interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}doStuff|](): void;|> // propName: string; // } // @@ -8,293 +9,235 @@ // v.propName; // v.[|doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 45, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 45, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "contextSpan": { - "start": 45, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 119, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === + // interface interface1 extends interface1 { + // /*FIND ALL REFS*/<|[|doStuff|](): void;|> + // propName: string; + // } + // + // var v: interface1; + // v.propName; + // v.doStuff(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === // interface interface1 extends interface1 { // doStuff(): void; -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propName|]: string;|> // } // // var v: interface1; // v.[|propName|]; // v.doStuff(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 65, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 65, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 65, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "contextSpan": { - "start": 65, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 107, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === + // interface interface1 extends interface1 { + // doStuff(): void; + // /*FIND ALL REFS*/<|[|propName|]: string;|> + // } + // + // var v: interface1; + // v.propName; + // v.doStuff(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === // interface interface1 extends interface1 { // doStuff(): void; -// [|propName|]: string; +// <|[|propName|]: string;|> // } // // var v: interface1; // v./*FIND ALL REFS*/[|propName|]; // v.doStuff(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 65, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 65, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 65, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "contextSpan": { - "start": 65, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 107, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === + // interface interface1 extends interface1 { + // doStuff(): void; + // <|[|propName|]: string;|> + // } + // + // var v: interface1; + // v./*FIND ALL REFS*/propName; + // v.doStuff(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === // interface interface1 extends interface1 { -// [|doStuff|](): void; +// <|[|doStuff|](): void;|> // propName: string; // } // @@ -302,94 +245,73 @@ // v.propName; // v./*FIND ALL REFS*/[|doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 45, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 45, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "contextSpan": { - "start": 45, - "length": 16 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 119, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties3.ts === + // interface interface1 extends interface1 { + // <|[|doStuff|](): void;|> + // propName: string; + // } + // + // var v: interface1; + // v.propName; + // v./*FIND ALL REFS*/doStuff(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties4.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties4.baseline.jsonc index 6b209d5221182..585f11449d63a 100644 --- a/tests/baselines/reference/referencesForInheritedProperties4.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties4.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === // class class1 extends class1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // @@ -8,199 +9,159 @@ // c.[|doStuff|](); // c.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 88, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === + // class class1 extends class1 { + // /*FIND ALL REFS*/<|[|doStuff|]() { }|> + // propName: string; + // } + // + // var c: class1; + // c.doStuff(); + // c.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === // class class1 extends class1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propName|]: string;|> // } // // var c: class1; // c.doStuff(); // c.[|propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === + // class class1 extends class1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|propName|]: string;|> + // } + // + // var c: class1; + // c.doStuff(); + // c.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === // class class1 extends class1 { -// [|doStuff|]() { } +// <|[|{| isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // @@ -208,188 +169,149 @@ // c./*FIND ALL REFS*/[|doStuff|](); // c.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 88, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === + // class class1 extends class1 { + // <|[|doStuff|]() { }|> + // propName: string; + // } + // + // var c: class1; + // c./*FIND ALL REFS*/doStuff(); + // c.propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === // class class1 extends class1 { // doStuff() { } -// [|propName|]: string; +// <|[|propName|]: string;|> // } // // var c: class1; // c.doStuff(); // c./*FIND ALL REFS*/[|propName|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 101, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties4.ts === + // class class1 extends class1 { + // doStuff() { } + // <|[|propName|]: string;|> + // } + // + // var c: class1; + // c.doStuff(); + // c./*FIND ALL REFS*/propName; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties5.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties5.baseline.jsonc index 3a7dc41e44c5f..9ddb401089d14 100644 --- a/tests/baselines/reference/referencesForInheritedProperties5.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties5.baseline.jsonc @@ -1,363 +1,281 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties5.ts === // interface interface1 extends interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}doStuff|](): void;|> // propName: string; // } // interface interface2 extends interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // propName: string; // } // // var v: interface1; // v.propName; -// v.[|doStuff|](); +// v.[|{| defId: 0 |}doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 45, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 45, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 45, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "contextSpan": { - "start": 45, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 204, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties5.ts === + // interface interface1 extends interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|](): void;|> + // propName: string; + // } + // interface interface2 extends interface1 { + // <|[|{| defId: 1 |}doStuff|](): void;|> + // propName: string; + // } + // + // var v: interface1; + // v.propName; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "kind": "method", - "name": "(method) interface2.doStuff(): void", - "textSpan": { - "start": 130, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 130, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 130, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "contextSpan": { - "start": 130, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties5.ts === // interface interface1 extends interface1 { // doStuff(): void; -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propName|]: string;|> // } // interface interface2 extends interface1 { // doStuff(): void; -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // // var v: interface1; -// v.[|propName|]; +// v.[|{| defId: 0 |}propName|]; // v.doStuff(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 65, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 65, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 65, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "contextSpan": { - "start": 65, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 192, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties5.ts === + // interface interface1 extends interface1 { + // doStuff(): void; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface2 extends interface1 { + // doStuff(): void; + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // + // var v: interface1; + // v.propName; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "kind": "property", - "name": "(property) interface2.propName: string", - "textSpan": { - "start": 150, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 150, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 150, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties5.ts", - "contextSpan": { - "start": 150, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties6.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties6.baseline.jsonc index c7524d7b6f6a4..a1d8bd488c35a 100644 --- a/tests/baselines/reference/referencesForInheritedProperties6.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties6.baseline.jsonc @@ -1,186 +1,141 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties6.ts === // class class1 extends class1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // } // class class2 extends class1 { -// [|doStuff|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}doStuff|]() { }|> // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 1 |}doStuff|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties6.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 34, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 34, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 34, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties6.ts", - "contextSpan": { - "start": 34, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties6.ts === + // class class1 extends class1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|]() { }|> + // } + // class class2 extends class1 { + // <|[|{| defId: 1 |}doStuff|]() { }|> + // } + // + // var v: class2; + // v.doStuff(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties6.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 84, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 84, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties6.ts", - "contextSpan": { - "start": 84, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 118, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties6.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties7.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties7.baseline.jsonc index a9c70ce5e5975..116ed4251b838 100644 --- a/tests/baselines/reference/referencesForInheritedProperties7.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties7.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // interface interface1 extends interface1 { @@ -8,194 +9,158 @@ // propName: string; // } // class class2 extends class1 implements interface1 { -// [|doStuff|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 1 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|]() { }|> + // propName: string; + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // <|[|{| defId: 1 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 210, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 210, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 210, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 210, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 265, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propName|]: string;|> // } // interface interface1 extends interface1 { // doStuff(): void; @@ -203,367 +168,295 @@ // } // class class2 extends class1 implements interface1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 1 |}propName|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 227, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 227, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 227, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 227, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 278, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { // doStuff() { } // propName: string; // } // interface interface1 extends interface1 { -// /*FIND ALL REFS*/[|doStuff|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}doStuff|](): void;|> // propName: string; // } // class class2 extends class1 implements interface1 { -// [|doStuff|]() { } +// <|[|{| defId: 1, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 1 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 115, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 115, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // doStuff() { } + // propName: string; + // } + // interface interface1 extends interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}doStuff|](): void;|> + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // <|[|{| defId: 1 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 210, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 210, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 210, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 210, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 265, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { // doStuff() { } @@ -571,701 +464,540 @@ // } // interface interface1 extends interface1 { // doStuff(): void; -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propName|]: string;|> // } // class class2 extends class1 implements interface1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 1 |}propName|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // doStuff() { } + // propName: string; + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propName|]: string;|> + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 135, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 135, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 135, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 135, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 227, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 227, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 227, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 227, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 278, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { -// [|doStuff|]() { } +// <|[|{| defId: 0, isWriteAccess: true |}doStuff|]() { }|> // propName: string; // } // interface interface1 extends interface1 { -// [|doStuff|](): void; +// <|[|{| defId: 1 |}doStuff|](): void;|> // propName: string; // } // class class2 extends class1 implements interface1 { -// /*FIND ALL REFS*/[|doStuff|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 2, isWriteAccess: true, isDefinition: true |}doStuff|]() { }|> // propName: string; // } // // var v: class2; -// v.[|doStuff|](); +// v.[|{| defId: 2 |}doStuff|](); // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) class1.doStuff(): void", - "textSpan": { - "start": 33, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 33, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 33, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 33, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // <|[|{| defId: 0 |}doStuff|]() { }|> + // propName: string; + // } + // interface interface1 extends interface1 { + // <|[|{| defId: 1 |}doStuff|](): void;|> + // propName: string; + // } + // class class2 extends class1 implements interface1 { + // /*FIND ALL REFS*/<|[|{| defId: 2 |}doStuff|]() { }|> + // propName: string; + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) interface1.doStuff(): void", - "textSpan": { - "start": 115, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 115, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) interface1.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "method", - "name": "(method) class2.doStuff(): void", - "textSpan": { - "start": 210, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doStuff", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 210, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 210, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 210, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 265, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) class2.doStuff(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doStuff", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === // class class1 extends class1 { // doStuff() { } -// [|propName|]: string; +// <|[|{| defId: 0 |}propName|]: string;|> // } // interface interface1 extends interface1 { // doStuff(): void; -// [|propName|]: string; +// <|[|{| defId: 1 |}propName|]: string;|> // } // class class2 extends class1 implements interface1 { // doStuff() { } -// /*FIND ALL REFS*/[|propName|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 2, isDefinition: true |}propName|]: string;|> // } // // var v: class2; // v.doStuff(); -// v.[|propName|]; +// v.[|{| defId: 2 |}propName|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties7.ts === + // class class1 extends class1 { + // doStuff() { } + // <|[|{| defId: 0 |}propName|]: string;|> + // } + // interface interface1 extends interface1 { + // doStuff(): void; + // <|[|{| defId: 1 |}propName|]: string;|> + // } + // class class2 extends class1 implements interface1 { + // doStuff() { } + // /*FIND ALL REFS*/<|[|{| defId: 2 |}propName|]: string;|> + // } + // + // var v: class2; + // v.doStuff(); + // v.propName; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) class1.propName: string", - "textSpan": { - "start": 50, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 50, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 50, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 50, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) interface1.propName: string", - "textSpan": { - "start": 135, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "interface1", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 135, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 135, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 135, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) interface1.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "interface1", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "kind": "property", - "name": "(property) class2.propName: string", - "textSpan": { - "start": 227, - "length": 8 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class2", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propName", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 227, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 227, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "contextSpan": { - "start": 227, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 278, - "length": 8 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties7.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) class2.propName: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propName", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties8.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties8.baseline.jsonc index 89fc6a2f31314..682ba45c81455 100644 --- a/tests/baselines/reference/referencesForInheritedProperties8.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties8.baseline.jsonc @@ -1,269 +1,207 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties8.ts === // interface C extends D { -// /*FIND ALL REFS*/[|propD|]: number; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}propD|]: number;|> // } // interface D extends C { -// [|propD|]: string; +// <|[|{| defId: 1 |}propD|]: string;|> // propC: number; // } // var d: D; -// d.[|propD|]; +// d.[|{| defId: 1 |}propD|]; // d.propC; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "kind": "property", - "name": "(property) C.propD: number", - "textSpan": { - "start": 28, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propD", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 28, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 28, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "contextSpan": { - "start": 28, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties8.ts === + // interface C extends D { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}propD|]: number;|> + // } + // interface D extends C { + // <|[|{| defId: 1 |}propD|]: string;|> + // propC: number; + // } + // var d: D; + // d.propD; + // d.propC; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.propD: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propD", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "kind": "property", - "name": "(property) D.propD: string", - "textSpan": { - "start": 73, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propD", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 73, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "contextSpan": { - "start": 73, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 121, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.propD: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propD", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties8.ts === // interface C extends D { // propD: number; // } // interface D extends C { // propD: string; -// /*FIND ALL REFS*/[|propC|]: number; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propC|]: number;|> // } // var d: D; // d.propD; // d.[|propC|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "kind": "property", - "name": "(property) D.propC: number", - "textSpan": { - "start": 92, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propC", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 92, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 92, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "contextSpan": { - "start": 92, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 130, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties8.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties8.ts === + // interface C extends D { + // propD: number; + // } + // interface D extends C { + // propD: string; + // /*FIND ALL REFS*/<|[|propC|]: number;|> + // } + // var d: D; + // d.propD; + // d.propC; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.propC: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propC", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForInheritedProperties9.baseline.jsonc b/tests/baselines/reference/referencesForInheritedProperties9.baseline.jsonc index 0fb6456d2cd87..55d2eba1239ce 100644 --- a/tests/baselines/reference/referencesForInheritedProperties9.baseline.jsonc +++ b/tests/baselines/reference/referencesForInheritedProperties9.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === // class D extends C { -// /*FIND ALL REFS*/[|prop1|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop1|]: string;|> // } // // class C extends D { @@ -10,273 +11,227 @@ // var c: C; // c.prop1; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "kind": "property", - "name": "(property) D.prop1: string", - "textSpan": { - "start": 24, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 24, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "contextSpan": { - "start": 24, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === + // class D extends C { + // /*FIND ALL REFS*/<|[|prop1|]: string;|> + // } + // + // class C extends D { + // prop1: string; + // } + // + // var c: C; + // c.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) D.prop1: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === // class D extends C { // prop1: string; // } // // class C extends D { -// /*FIND ALL REFS*/[|prop1|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}prop1|]: string;|> // } // // var c: C; // c.[|prop1|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "kind": "property", - "name": "(property) C.prop1: string", - "textSpan": { - "start": 66, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 66, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "contextSpan": { - "start": 66, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 96, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === + // class D extends C { + // prop1: string; + // } + // + // class C extends D { + // /*FIND ALL REFS*/<|[|prop1|]: string;|> + // } + // + // var c: C; + // c.prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop1: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === // class D extends C { // prop1: string; // } // // class C extends D { -// [|prop1|]: string; +// <|[|prop1|]: string;|> // } // // var c: C; // c./*FIND ALL REFS*/[|prop1|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "kind": "property", - "name": "(property) C.prop1: string", - "textSpan": { - "start": 66, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "prop1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 66, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 66, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "contextSpan": { - "start": 66, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 96, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForInheritedProperties9.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForInheritedProperties9.ts === + // class D extends C { + // prop1: string; + // } + // + // class C extends D { + // <|[|prop1|]: string;|> + // } + // + // var c: C; + // c./*FIND ALL REFS*/prop1; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C.prop1: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prop1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel.baseline.jsonc b/tests/baselines/reference/referencesForLabel.baseline.jsonc index c60eb83c48ebf..bec409207457b 100644 --- a/tests/baselines/reference/referencesForLabel.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel.baseline.jsonc @@ -1,255 +1,173 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel.ts === -// /*FIND ALL REFS*/[|label|]: while (true) { -// if (false) break [|label|]; -// if (true) continue [|label|]; -// } +// /*FIND ALL REFS*/<|[|label|]: while (true) { +// if (false) <|break [|label|];|> +// if (true) <|continue [|label|];|> +// }|> // // label: while (false) { } // var label = "label"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 0, - "length": 81 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 43, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 37, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 64, - "length": 15 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel.ts === + // /*FIND ALL REFS*/[|label|]: while (true) { + // if (false) break label; + // if (true) continue label; + // } + // + // label: while (false) { } + // var label = "label"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] -undefined + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel.ts === -// [|label|]: while (true) { -// if (false) break /*FIND ALL REFS*/[|label|]; -// if (true) continue [|label|]; +// label: while (true) { +// if (false) /*FIND ALL REFS*/break label; +// if (true) continue label; // } // // label: while (false) { } // var label = "label"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 0, - "length": 81 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 43, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 37, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 64, - "length": 15 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel.ts === +// <|[|label|]: while (true) { +// if (false) <|break /*FIND ALL REFS*/[|label|];|> +// if (true) <|continue [|label|];|> +// }|> +// +// label: while (false) { } +// var label = "label"; + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel.ts === + // [|label|]: while (true) { + // if (false) break /*FIND ALL REFS*/label; + // if (true) continue label; + // } + // + // label: while (false) { } + // var label = "label"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel.ts === -// [|label|]: while (true) { -// if (false) break [|label|]; -// if (true) continue /*FIND ALL REFS*/[|label|]; +// label: while (true) { +// if (false) break label; +// if (true) /*FIND ALL REFS*/continue label; // } // // label: while (false) { } // var label = "label"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 0, - "length": 81 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 43, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 37, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 73, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 64, - "length": 15 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel.ts === +// <|[|label|]: while (true) { +// if (false) <|break [|label|];|> +// if (true) <|continue /*FIND ALL REFS*/[|label|];|> +// }|> +// +// label: while (false) { } +// var label = "label"; + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel.ts === + // [|label|]: while (true) { + // if (false) break label; + // if (true) continue /*FIND ALL REFS*/label; + // } + // + // label: while (false) { } + // var label = "label"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel.ts === // label: while (true) { // if (false) break label; // if (true) continue label; // } // -// /*FIND ALL REFS*/[|label|]: while (false) { } +// /*FIND ALL REFS*/<|[|label|]: while (false) { }|> // var label = "label"; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 83, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 83, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel.ts", - "contextSpan": { - "start": 83, - "length": 24 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel.ts === + // label: while (true) { + // if (false) break label; + // if (true) continue label; + // } + // + // /*FIND ALL REFS*/[|label|]: while (false) { } + // var label = "label"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel2.baseline.jsonc b/tests/baselines/reference/referencesForLabel2.baseline.jsonc index 66dc9051da651..3f53396294a10 100644 --- a/tests/baselines/reference/referencesForLabel2.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel2.baseline.jsonc @@ -1 +1,7 @@ -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel2.ts === +// var label = "label"; +// while (true) { +// if (false) break /*FIND ALL REFS*/label; +// if (true) continue label; +// } \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel3.baseline.jsonc b/tests/baselines/reference/referencesForLabel3.baseline.jsonc index bc953ad586802..dd4b189586545 100644 --- a/tests/baselines/reference/referencesForLabel3.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel3.baseline.jsonc @@ -1,40 +1,27 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel3.ts === -// /*FIND ALL REFS*/[|label|]: while (true) { +// /*FIND ALL REFS*/<|[|label|]: while (true) { // var label = "label"; -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel3.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel3.ts", - "contextSpan": { - "start": 0, - "length": 48 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel3.ts === + // /*FIND ALL REFS*/[|label|]: while (true) { + // var label = "label"; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel4.baseline.jsonc b/tests/baselines/reference/referencesForLabel4.baseline.jsonc index 54ac7065b2bd9..ce8ace6f0c7fb 100644 --- a/tests/baselines/reference/referencesForLabel4.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel4.baseline.jsonc @@ -1,111 +1,75 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel4.ts === -// /*FIND ALL REFS*/[|label|]: function foo(label) { +// /*FIND ALL REFS*/<|[|label|]: function foo(label) { // while (true) { -// break [|label|]; +// <|break [|label|];|> // } -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel4.ts === + // /*FIND ALL REFS*/[|label|]: function foo(label) { + // while (true) { + // break label; + // } + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "contextSpan": { - "start": 0, - "length": 76 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 62, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "contextSpan": { - "start": 56, - "length": 12 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel4.ts === -// [|label|]: function foo(label) { +// label: function foo(label) { // while (true) { -// break /*FIND ALL REFS*/[|label|]; +// /*FIND ALL REFS*/break label; // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "contextSpan": { - "start": 0, - "length": 76 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 62, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel4.ts", - "contextSpan": { - "start": 56, - "length": 12 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel4.ts === +// <|[|label|]: function foo(label) { +// while (true) { +// <|break /*FIND ALL REFS*/[|label|];|> +// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel4.ts === + // [|label|]: function foo(label) { + // while (true) { + // break /*FIND ALL REFS*/label; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel5.baseline.jsonc b/tests/baselines/reference/referencesForLabel5.baseline.jsonc index 204fc2ddf8dee..325f4da155036 100644 --- a/tests/baselines/reference/referencesForLabel5.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel5.baseline.jsonc @@ -1,336 +1,249 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel5.ts === -// /*FIND ALL REFS*/[|label|]: while (true) { -// if (false) break [|label|]; +// /*FIND ALL REFS*/<|[|label|]: while (true) { +// if (false) <|break [|label|];|> // function blah() { // label: while (true) { // if (false) break label; // } // } -// if (false) break [|label|]; -// } +// if (false) <|break [|label|];|> +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel5.ts === + // /*FIND ALL REFS*/[|label|]: while (true) { + // if (false) break label; + // function blah() { + // label: while (true) { + // if (false) break label; + // } + // } + // if (false) break label; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 0, - "length": 241 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 52, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 46, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 225, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 219, - "length": 12 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel5.ts === -// [|label|]: while (true) { -// if (false) break /*FIND ALL REFS*/[|label|]; +// label: while (true) { +// if (false) /*FIND ALL REFS*/break label; // function blah() { // label: while (true) { // if (false) break label; // } // } -// if (false) break [|label|]; +// if (false) break label; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 0, - "length": 241 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 52, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 46, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 225, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 219, - "length": 12 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel5.ts === +// <|[|label|]: while (true) { +// if (false) <|break /*FIND ALL REFS*/[|label|];|> +// function blah() { +// label: while (true) { +// if (false) break label; +// } +// } +// if (false) <|break [|label|];|> +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel5.ts === + // [|label|]: while (true) { + // if (false) break /*FIND ALL REFS*/label; + // function blah() { + // label: while (true) { + // if (false) break label; + // } + // } + // if (false) break label; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel5.ts === // label: while (true) { // if (false) break label; // function blah() { -// /*FIND ALL REFS*/[|label|]: while (true) { -// if (false) break [|label|]; -// } +// /*FIND ALL REFS*/<|[|label|]: while (true) { +// if (false) <|break [|label|];|> +// }|> // } // if (false) break label; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 89, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 89, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 89, - "length": 92 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 157, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 151, - "length": 12 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel5.ts === + // label: while (true) { + // if (false) break label; + // function blah() { + // /*FIND ALL REFS*/[|label|]: while (true) { + // if (false) break label; + // } + // } + // if (false) break label; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel5.ts === // label: while (true) { // if (false) break label; // function blah() { -// [|label|]: while (true) { -// if (false) break /*FIND ALL REFS*/[|label|]; +// label: while (true) { +// if (false) /*FIND ALL REFS*/break label; // } // } // if (false) break label; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 89, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 89, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 89, - "length": 92 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 157, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 151, - "length": 12 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel5.ts === +// label: while (true) { +// if (false) break label; +// function blah() { +// <|[|label|]: while (true) { +// if (false) <|break /*FIND ALL REFS*/[|label|];|> +// }|> +// } +// if (false) break label; +// } + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel5.ts === + // label: while (true) { + // if (false) break label; + // function blah() { + // [|label|]: while (true) { + // if (false) break /*FIND ALL REFS*/label; + // } + // } + // if (false) break label; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] + } + ] -undefined + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel5.ts === -// [|label|]: while (true) { -// if (false) break [|label|]; +// label: while (true) { +// if (false) break label; // function blah() { // label: while (true) { // if (false) break label; // } // } -// if (false) break /*FIND ALL REFS*/[|label|]; +// if (false) /*FIND ALL REFS*/break label; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "kind": "label", - "name": "label", - "textSpan": { - "start": 0, - "length": 5 - }, - "displayParts": [ - { - "text": "label", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 0, - "length": 241 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 52, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 46, - "length": 12 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 225, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel5.ts", - "contextSpan": { - "start": 219, - "length": 12 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel5.ts === +// <|[|label|]: while (true) { +// if (false) <|break [|label|];|> +// function blah() { +// label: while (true) { +// if (false) break label; +// } +// } +// if (false) <|break /*FIND ALL REFS*/[|label|];|> +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel5.ts === + // [|label|]: while (true) { + // if (false) break label; + // function blah() { + // label: while (true) { + // if (false) break label; + // } + // } + // if (false) break /*FIND ALL REFS*/label; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "label", + "displayParts": [ + { + "text": "label", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForLabel6.baseline.jsonc b/tests/baselines/reference/referencesForLabel6.baseline.jsonc index 8dc2f40b1011c..8cb62dc0abd8d 100644 --- a/tests/baselines/reference/referencesForLabel6.baseline.jsonc +++ b/tests/baselines/reference/referencesForLabel6.baseline.jsonc @@ -1,151 +1,102 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel6.ts === -// /*FIND ALL REFS*/[|labela|]: while (true) { +// /*FIND ALL REFS*/<|[|labela|]: while (true) { // labelb: while (false) { break labelb; } // break labelc; -// } +// }|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel6.ts === + // /*FIND ALL REFS*/[|labela|]: while (true) { + // labelb: while (false) { break labelb; } + // break labelc; + // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "kind": "label", - "name": "labela", - "textSpan": { - "start": 0, - "length": 6 - }, - "displayParts": [ - { - "text": "labela", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 0, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "contextSpan": { - "start": 0, - "length": 94 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "labela", + "displayParts": [ + { + "text": "labela", + "kind": "text" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel6.ts === // labela: while (true) { -// /*FIND ALL REFS*/[|labelb|]: while (false) { break [|labelb|]; } +// /*FIND ALL REFS*/<|[|labelb|]: while (false) { <|break [|labelb|];|> }|> // break labelc; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "kind": "label", - "name": "labelb", - "textSpan": { - "start": 23, - "length": 6 - }, - "displayParts": [ - { - "text": "labelb", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "contextSpan": { - "start": 23, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 57, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "contextSpan": { - "start": 51, - "length": 13 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel6.ts === + // labela: while (true) { + // /*FIND ALL REFS*/[|labelb|]: while (false) { break labelb; } + // break labelc; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "labelb", + "displayParts": [ + { + "text": "labelb", + "kind": "text" + } ] - } -] + } + ] + + -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesForLabel6.ts === +// labela: while (true) { +// labelb: while (false) { /*FIND ALL REFS*/break labelb; } +// break labelc; +// } + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForLabel6.ts === // labela: while (true) { -// [|labelb|]: while (false) { break /*FIND ALL REFS*/[|labelb|]; } +// <|[|labelb|]: while (false) { <|break /*FIND ALL REFS*/[|labelb|];|> }|> // break labelc; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "kind": "label", - "name": "labelb", - "textSpan": { - "start": 23, - "length": 6 - }, - "displayParts": [ - { - "text": "labelb", - "kind": "text" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "contextSpan": { - "start": 23, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 57, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForLabel6.ts", - "contextSpan": { - "start": 51, - "length": 13 - }, - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForLabel6.ts === + // labela: while (true) { + // [|labelb|]: while (false) { break /*FIND ALL REFS*/labelb; } + // break labelc; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "label", + "name": "labelb", + "displayParts": [ + { + "text": "labelb", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations.baseline.jsonc index 7450e4ef1ab02..1845f31aaa0d9 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === -// /*FIND ALL REFS*/interface [|Foo|] { -// } +// /*FIND ALL REFS*/<|interface [|{| isWriteAccess: true, isDefinition: true |}Foo|] { +// }|> // // module Foo { // export interface Bar { } @@ -13,83 +14,68 @@ // var f2: [|Foo|]; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "interface Foo\nnamespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // /*FIND ALL REFS*/interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo\nnamespace Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === -// interface /*FIND ALL REFS*/[|Foo|] { -// } +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|] { +// }|> // // module Foo { // export interface Bar { } @@ -102,87 +88,72 @@ // var f2: [|Foo|]; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "interface Foo\nnamespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface /*FIND ALL REFS*/Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo\nnamespace Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } // -// /*FIND ALL REFS*/module [|Foo|] { +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}Foo|] { // export interface Bar { } -// } +// }|> // // function Foo(): void { // } @@ -191,71 +162,56 @@ // var f2: Foo; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 19, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // /*FIND ALL REFS*/module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } // -// module /*FIND ALL REFS*/[|Foo|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|] { // export interface Bar { } -// } +// }|> // // function Foo(): void { // } @@ -264,64 +220,49 @@ // var f2: Foo; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 19, - "length": 43 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module /*FIND ALL REFS*/Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } @@ -330,107 +271,92 @@ // export interface Bar { } // } // -// /*FIND ALL REFS*/function [|Foo|](): void { -// } +// /*FIND ALL REFS*/<|function [|{| isWriteAccess: true, isDefinition: true |}Foo|](): void { +// }|> // // var f1: Foo.Bar; // var f2: Foo; // [|Foo|].bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo\nfunction Foo(): void", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 64, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // /*FIND ALL REFS*/<|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo\nfunction Foo(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } @@ -439,114 +365,99 @@ // export interface Bar { } // } // -// function /*FIND ALL REFS*/[|Foo|](): void { -// } +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|](): void { +// }|> // // var f1: Foo.Bar; // var f2: Foo; // [|Foo|].bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo\nfunction Foo(): void", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 64, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function /*FIND ALL REFS*/[|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo\nfunction Foo(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } // -// module [|Foo|] { +// <|module [|{| isWriteAccess: true |}Foo|] { // export interface Bar { } -// } +// }|> // // function Foo(): void { // } @@ -555,65 +466,52 @@ // var f2: Foo; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 26, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 19, - "length": 43 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 98, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: /*FIND ALL REFS*/Foo.Bar; + // var f2: Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === -// interface [|Foo|] { -// } +// <|interface [|{| isWriteAccess: true |}Foo|] { +// }|> // // module Foo { // export interface Bar { } @@ -626,78 +524,65 @@ // var f2: /*FIND ALL REFS*/[|Foo|]; // Foo.bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "interface Foo\nnamespace Foo", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: /*FIND ALL REFS*/Foo; + // Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo\nnamespace Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === // interface Foo { // } @@ -706,101 +591,85 @@ // export interface Bar { } // } // -// function [|Foo|](): void { -// } +// <|function [|{| isWriteAccess: true |}Foo|](): void { +// }|> // // var f1: Foo.Bar; // var f2: Foo; // /*FIND ALL REFS*/[|Foo|].bind(this); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "kind": "function", - "name": "namespace Foo\nfunction Foo(): void", - "textSpan": { - "start": 73, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 64, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 73, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "contextSpan": { - "start": 64, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 120, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations.ts === + // interface Foo { + // } + // + // module Foo { + // export interface Bar { } + // } + // + // <|function [|Foo|](): void { + // }|> + // + // var f1: Foo.Bar; + // var f2: Foo; + // /*FIND ALL REFS*/Foo.bind(this); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo\nfunction Foo(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations2.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations2.baseline.jsonc index 21527ad582ab7..6cd3283d99c92 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations2.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations2.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === // module ATest { // export interface Bar { } @@ -5,178 +6,151 @@ // // function ATest() { } // -// /*FIND ALL REFS*/import [|alias|] = ATest; // definition +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}alias|] = ATest;|> // definition // // var a: [|alias|].Bar; // namespace // [|alias|].call(this); // value -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "kind": "alias", - "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", - "textSpan": { - "start": 76, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ATest", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 69, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 76, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "contextSpan": { - "start": 69, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 113, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 137, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === + // module ATest { + // export interface Bar { } + // } + // + // function ATest() { } + // + // /*FIND ALL REFS*/<|import [|alias|] = ATest;|> // definition + // + // var a: alias.Bar; // namespace + // alias.call(this); // value + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ATest", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === // module ATest { // export interface Bar { } @@ -184,178 +158,151 @@ // // function ATest() { } // -// import /*FIND ALL REFS*/[|alias|] = ATest; // definition +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}alias|] = ATest;|> // definition // // var a: [|alias|].Bar; // namespace // [|alias|].call(this); // value -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "kind": "alias", - "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", - "textSpan": { - "start": 76, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ATest", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 69, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 76, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "contextSpan": { - "start": 69, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 113, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 137, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === + // module ATest { + // export interface Bar { } + // } + // + // function ATest() { } + // + // <|import /*FIND ALL REFS*/[|alias|] = ATest;|> // definition + // + // var a: alias.Bar; // namespace + // alias.call(this); // value + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ATest", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === // module ATest { // export interface Bar { } @@ -363,175 +310,151 @@ // // function ATest() { } // -// import [|alias|] = ATest; // definition +// <|import [|{| isWriteAccess: true |}alias|] = ATest;|> // definition // // var a: /*FIND ALL REFS*/[|alias|].Bar; // namespace // [|alias|].call(this); // value -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "kind": "alias", - "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", - "textSpan": { - "start": 76, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ATest", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 69, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 76, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "contextSpan": { - "start": 69, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 137, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === + // module ATest { + // export interface Bar { } + // } + // + // function ATest() { } + // + // <|import [|alias|] = ATest;|> // definition + // + // var a: /*FIND ALL REFS*/alias.Bar; // namespace + // alias.call(this); // value + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ATest", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === // module ATest { // export interface Bar { } @@ -539,171 +462,144 @@ // // function ATest() { } // -// import [|alias|] = ATest; // definition +// <|import [|{| isWriteAccess: true |}alias|] = ATest;|> // definition // // var a: [|alias|].Bar; // namespace // /*FIND ALL REFS*/[|alias|].call(this); // value -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "kind": "alias", - "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", - "textSpan": { - "start": 76, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "alias", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ATest", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 69, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 76, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "contextSpan": { - "start": 69, - "length": 21 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 113, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 137, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations2.ts === + // module ATest { + // export interface Bar { } + // } + // + // function ATest() { } + // + // <|import [|alias|] = ATest;|> // definition + // + // var a: alias.Bar; // namespace + // /*FIND ALL REFS*/alias.call(this); // value + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function alias(): void\n(alias) namespace alias\nimport alias = ATest", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "alias", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ATest", + "kind": "functionName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations3.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations3.baseline.jsonc index 598c4b6cf6c96..2809a3bc87985 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations3.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations3.baseline.jsonc @@ -1,14 +1,15 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations3.ts === // class testClass { // static staticMethod() { } // method() { } // } // -// module /*FIND ALL REFS*/[|testClass|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}testClass|] { // export interface Bar { // // } -// } +// }|> // // var c1: testClass; // var c2: [|testClass|].Bar; @@ -17,85 +18,74 @@ // testClass.bind(this); // new testClass(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "contextSpan": { - "start": 68, - "length": 54 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 151, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations3.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module /*FIND ALL REFS*/testClass { + // export interface Bar { + // + // } + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations3.ts === -// class /*FIND ALL REFS*/[|testClass|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // // module testClass { // export interface Bar { @@ -110,112 +100,62 @@ // [|testClass|].bind(this); // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 132, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 166, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 192, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 222, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 248, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations3.ts === + // <|class /*FIND ALL REFS*/[|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations4.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations4.baseline.jsonc index d3398800e5457..e12282e25b6fd 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations4.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations4.baseline.jsonc @@ -1,15 +1,16 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// /*FIND ALL REFS*/class [|testClass|] { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -19,159 +20,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // /*FIND ALL REFS*/<|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class /*FIND ALL REFS*/[|testClass|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -181,159 +106,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class /*FIND ALL REFS*/[|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// /*FIND ALL REFS*/module [|testClass|] { +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -343,159 +192,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // /*FIND ALL REFS*/module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true, isDefinition: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module /*FIND ALL REFS*/[|testClass|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -505,159 +278,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module /*FIND ALL REFS*/testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: /*FIND ALL REFS*/[|testClass|]; // var c2: [|testClass|].Bar; @@ -667,150 +364,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: /*FIND ALL REFS*/testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: /*FIND ALL REFS*/[|testClass|].Bar; @@ -820,150 +450,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: /*FIND ALL REFS*/testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -973,150 +536,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // /*FIND ALL REFS*/testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -1126,150 +622,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // /*FIND ALL REFS*/testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -1279,150 +708,83 @@ // [|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // /*FIND ALL REFS*/testClass.bind(this); + // testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -1432,150 +794,83 @@ // /*FIND ALL REFS*/[|testClass|].s; // new [|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // /*FIND ALL REFS*/testClass.s; + // new testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === -// class [|testClass|] { +// <|class [|{| isWriteAccess: true |}testClass|] { // static staticMethod() { } // method() { } -// } +// }|> // -// module [|testClass|] { +// <|module [|{| isWriteAccess: true |}testClass|] { // export interface Bar { // // } // export var s = 0; -// } +// }|> // // var c1: [|testClass|]; // var c2: [|testClass|].Bar; @@ -1585,134 +880,64 @@ // [|testClass|].s; // new /*FIND ALL REFS*/[|testClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "kind": "class", - "name": "class testClass\nnamespace testClass", - "textSpan": { - "start": 6, - "length": 9 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "testClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 0, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 75, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "contextSpan": { - "start": 68, - "length": 76 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 154, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 173, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 188, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 214, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 244, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 266, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 283, - "length": 9 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations4.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations4.ts === + // <|class [|testClass|] { + // static staticMethod() { } + // method() { } + // }|> + // + // module testClass { + // export interface Bar { + // + // } + // export var s = 0; + // } + // + // var c1: testClass; + // var c2: testClass.Bar; + // testClass.staticMethod(); + // testClass.prototype.method(); + // testClass.bind(this); + // testClass.s; + // new /*FIND ALL REFS*/testClass(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class testClass\nnamespace testClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "testClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations5.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations5.baseline.jsonc index a2cfa68b5a895..6320388f6bc60 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations5.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations5.baseline.jsonc @@ -1,401 +1,269 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === -// interface /*FIND ALL REFS*/[|Foo|] { } +// <|interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|] { }|> // module Foo { export interface Bar { } } // function Foo() { } // -// export = [|Foo|]; +// <|export = [|Foo|];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "kind": "function", - "name": "interface Foo\nnamespace Foo", - "textSpan": { - "start": 67, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 58, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 87, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 78, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === + // interface /*FIND ALL REFS*/Foo { } + // module Foo { export interface Bar { } } + // <|function [|Foo|]() { }|> + // + // export = Foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo\nnamespace Foo", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === // interface Foo { } -// module /*FIND ALL REFS*/[|Foo|] { export interface Bar { } } +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|] { export interface Bar { } }|> // function Foo() { } // -// export = [|Foo|]; +// <|export = [|Foo|];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "kind": "function", - "name": "namespace Foo", - "textSpan": { - "start": 67, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 58, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 18, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 87, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 78, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === + // interface Foo { } + // module /*FIND ALL REFS*/Foo { export interface Bar { } } + // <|function [|Foo|]() { }|> + // + // export = Foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === // interface Foo { } // module Foo { export interface Bar { } } -// function /*FIND ALL REFS*/[|Foo|]() { } +// <|function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|]() { }|> // -// export = [|Foo|]; +// <|export = [|Foo|];|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === + // interface Foo { } + // module Foo { export interface Bar { } } + // <|function /*FIND ALL REFS*/[|Foo|]() { }|> + // + // export = Foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "kind": "function", - "name": "namespace Foo\nfunction Foo(): void", - "textSpan": { - "start": 67, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 58, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 58, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 87, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 78, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo\nfunction Foo(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === -// interface [|Foo|] { } -// module [|Foo|] { export interface Bar { } } -// function [|Foo|]() { } +// <|interface [|{| isWriteAccess: true |}Foo|] { }|> +// <|module [|{| isWriteAccess: true |}Foo|] { export interface Bar { } }|> +// <|function [|{| isWriteAccess: true |}Foo|]() { }|> // -// export = /*FIND ALL REFS*/[|Foo|]; +// <|export = /*FIND ALL REFS*/[|Foo|];|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations5.ts === + // interface Foo { } + // module Foo { export interface Bar { } } + // <|function [|Foo|]() { }|> + // + // export = /*FIND ALL REFS*/Foo; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "kind": "function", - "name": "interface Foo\nnamespace Foo\nfunction Foo(): void", - "textSpan": { - "start": 67, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 58, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 18, - "length": 39 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 67, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 58, - "length": 18 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 87, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations5.ts", - "contextSpan": { - "start": 78, - "length": 13 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo\nnamespace Foo\nfunction Foo(): void", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations6.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations6.baseline.jsonc index a09206e6d7388..8d46aae9256f3 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations6.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations6.baseline.jsonc @@ -1,204 +1,147 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === // interface Foo { } -// /*FIND ALL REFS*/module [|Foo|] { +// /*FIND ALL REFS*/<|module [|{| isWriteAccess: true, isDefinition: true |}Foo|] { // export interface Bar { } // export module Bar { export interface Baz { } } // export function Bar() { } -// } +// }|> // // // module // import a1 = [|Foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "kind": "interface", - "name": "namespace Foo", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "contextSpan": { - "start": 18, - "length": 124 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 166, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === + // <|interface [|Foo|] { }|> + // /*FIND ALL REFS*/module Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // export function Bar() { } + // } + // + // // module + // import a1 = Foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === // interface Foo { } -// module /*FIND ALL REFS*/[|Foo|] { +// <|module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Foo|] { // export interface Bar { } // export module Bar { export interface Baz { } } // export function Bar() { } -// } +// }|> // // // module // import a1 = [|Foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "kind": "interface", - "name": "namespace Foo", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "contextSpan": { - "start": 18, - "length": 124 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 166, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === + // <|interface [|Foo|] { }|> + // module /*FIND ALL REFS*/Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // export function Bar() { } + // } + // + // // module + // import a1 = Foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === // interface Foo { } -// module [|Foo|] { +// <|module [|{| isWriteAccess: true |}Foo|] { // export interface Bar { } // export module Bar { export interface Baz { } } // export function Bar() { } -// } +// }|> // // // module // import a1 = /*FIND ALL REFS*/[|Foo|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "kind": "interface", - "name": "namespace Foo", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 25, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "contextSpan": { - "start": 18, - "length": 124 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 166, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations6.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations6.ts === + // <|interface [|Foo|] { }|> + // module Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // export function Bar() { } + // } + // + // // module + // import a1 = /*FIND ALL REFS*/Foo; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "namespace Foo", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations7.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations7.baseline.jsonc index ed382514d28f0..dd96b6f186a86 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations7.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations7.baseline.jsonc @@ -1,7 +1,8 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === // interface Foo { } // module Foo { -// export interface /*FIND ALL REFS*/[|Bar|] { } +// <|export interface /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|] { }|> // export module Bar { export interface Baz { } } // export function Bar() { } // } @@ -9,457 +10,356 @@ // // module, value and type // import a2 = Foo.[|Bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "kind": "function", - "name": "interface Foo.Bar\nnamespace Foo.Bar", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 35, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === + // interface Foo { } + // module Foo { + // export interface /*FIND ALL REFS*/Bar { } + // export module Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module, value and type + // import a2 = Foo.Bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo.Bar\nnamespace Foo.Bar", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === // interface Foo { } // module Foo { // export interface Bar { } -// export module /*FIND ALL REFS*/[|Bar|] { export interface Baz { } } +// <|export module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|] { export interface Baz { } }|> // export function Bar() { } // } // // // module, value and type // import a2 = Foo.[|Bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "kind": "function", - "name": "namespace Foo.Bar", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 64, - "length": 46 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // export module /*FIND ALL REFS*/Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module, value and type + // import a2 = Foo.Bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo.Bar", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === // interface Foo { } // module Foo { // export interface Bar { } // export module Bar { export interface Baz { } } -// export function /*FIND ALL REFS*/[|Bar|]() { } +// <|export function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|]() { }|> // } // // // module, value and type // import a2 = Foo.[|Bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "kind": "function", - "name": "namespace Foo.Bar\nfunction Foo.Bar(): void", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 131, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 115, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // <|export function /*FIND ALL REFS*/[|Bar|]() { }|> + // } + // + // // module, value and type + // import a2 = Foo.Bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo.Bar\nfunction Foo.Bar(): void", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === // interface Foo { } // module Foo { -// export interface [|Bar|] { } -// export module [|Bar|] { export interface Baz { } } -// export function [|Bar|]() { } +// <|export interface [|{| isWriteAccess: true |}Bar|] { }|> +// <|export module [|{| isWriteAccess: true |}Bar|] { export interface Baz { } }|> +// <|export function [|{| isWriteAccess: true |}Bar|]() { }|> // } // // // module, value and type // import a2 = Foo./*FIND ALL REFS*/[|Bar|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "kind": "function", - "name": "interface Foo.Bar\nnamespace Foo.Bar\nfunction Foo.Bar(): void", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 52, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 35, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 64, - "length": 46 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 131, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "contextSpan": { - "start": 115, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 186, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations7.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations7.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module, value and type + // import a2 = Foo./*FIND ALL REFS*/Bar; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "interface Foo.Bar\nnamespace Foo.Bar\nfunction Foo.Bar(): void", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForMergedDeclarations8.baseline.jsonc b/tests/baselines/reference/referencesForMergedDeclarations8.baseline.jsonc index 673e5e93a4838..ce0aa2c1599f2 100644 --- a/tests/baselines/reference/referencesForMergedDeclarations8.baseline.jsonc +++ b/tests/baselines/reference/referencesForMergedDeclarations8.baseline.jsonc @@ -1,228 +1,171 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === // interface Foo { } // module Foo { // export interface Bar { } -// /*FIND ALL REFS*/export module [|Bar|] { export interface Baz { } } +// /*FIND ALL REFS*/<|export module [|{| isWriteAccess: true, isDefinition: true |}Bar|] { export interface Baz { } }|> // export function Bar() { } // } // // // module // import a3 = Foo.[|Bar|].Baz; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "kind": "function", - "name": "namespace Foo.Bar", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "contextSpan": { - "start": 64, - "length": 46 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 170, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // /*FIND ALL REFS*/export module Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module + // import a3 = Foo.Bar.Baz; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo.Bar", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === // interface Foo { } // module Foo { // export interface Bar { } -// export module /*FIND ALL REFS*/[|Bar|] { export interface Baz { } } +// <|export module /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Bar|] { export interface Baz { } }|> // export function Bar() { } // } // // // module // import a3 = Foo.[|Bar|].Baz; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "kind": "function", - "name": "namespace Foo.Bar", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "contextSpan": { - "start": 64, - "length": 46 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 170, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // export module /*FIND ALL REFS*/Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module + // import a3 = Foo.Bar.Baz; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo.Bar", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === // interface Foo { } // module Foo { // export interface Bar { } -// export module [|Bar|] { export interface Baz { } } +// <|export module [|{| isWriteAccess: true |}Bar|] { export interface Baz { } }|> // export function Bar() { } // } // // // module // import a3 = Foo./*FIND ALL REFS*/[|Bar|].Baz; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "kind": "function", - "name": "namespace Foo.Bar", - "textSpan": { - "start": 131, - "length": 3 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "functionName" - } - ], - "contextSpan": { - "start": 115, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 78, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "contextSpan": { - "start": 64, - "length": 46 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 170, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForMergedDeclarations8.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForMergedDeclarations8.ts === + // interface Foo { } + // module Foo { + // export interface Bar { } + // export module Bar { export interface Baz { } } + // <|export function [|Bar|]() { }|> + // } + // + // // module + // import a3 = Foo./*FIND ALL REFS*/Bar.Baz; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "namespace Foo.Bar", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "functionName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForModifiers.baseline.jsonc b/tests/baselines/reference/referencesForModifiers.baseline.jsonc index 786b3832fc3d9..945f32fa5a25d 100644 --- a/tests/baselines/reference/referencesForModifiers.baseline.jsonc +++ b/tests/baselines/reference/referencesForModifiers.baseline.jsonc @@ -1,130 +1,115 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === -// /*FIND ALL REFS*/declare abstract class [|C1|] { +// /*FIND ALL REFS*/<|declare abstract class [|{| isWriteAccess: true, isDefinition: true |}C1|] { // static a; // readonly b; // public c; // protected d; // private e; -// } +// }|> // const enum E { // } // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "class", - "name": "class C1", - "textSpan": { - "start": 23, - "length": 2 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 105 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 0, - "length": 105 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // /*FIND ALL REFS*/<|declare abstract class [|C1|] { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // }|> + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C1", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === -// declare /*FIND ALL REFS*/abstract class [|C1|] { +// <|declare /*FIND ALL REFS*/abstract class [|{| isWriteAccess: true, isDefinition: true |}C1|] { // static a; // readonly b; // public c; // protected d; // private e; -// } +// }|> // const enum E { // } // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "class", - "name": "class C1", - "textSpan": { - "start": 23, - "length": 2 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 105 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 0, - "length": 105 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // <|declare /*FIND ALL REFS*/abstract class [|C1|] { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // }|> + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C1", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { -// /*FIND ALL REFS*/static [|a|]; +// /*FIND ALL REFS*/<|static [|{| isWriteAccess: true, isDefinition: true |}a|];|> // readonly b; // public c; // protected d; @@ -135,87 +120,79 @@ // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "property", - "name": "(property) C1.a: any", - "textSpan": { - "start": 39, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 32, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 39, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 32, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // /*FIND ALL REFS*/<|static [|a|];|> + // readonly b; + // public c; + // protected d; + // private e; + // } + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.a: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; -// /*FIND ALL REFS*/readonly [|b|]; +// /*FIND ALL REFS*/<|readonly [|{| isWriteAccess: true, isDefinition: true |}b|];|> // public c; // protected d; // private e; @@ -225,88 +202,80 @@ // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "property", - "name": "(property) C1.b: any", - "textSpan": { - "start": 55, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 46, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 55, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 46, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // /*FIND ALL REFS*/<|readonly [|b|];|> + // public c; + // protected d; + // private e; + // } + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.b: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; // readonly b; -// /*FIND ALL REFS*/public [|c|]; +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}c|];|> // protected d; // private e; // } @@ -315,89 +284,81 @@ // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "property", - "name": "(property) C1.c: any", - "textSpan": { - "start": 69, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "c", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 62, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 69, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 62, - "length": 9 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // /*FIND ALL REFS*/<|public [|c|];|> + // protected d; + // private e; + // } + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.c: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "c", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; // readonly b; // public c; -// /*FIND ALL REFS*/protected [|d|]; +// /*FIND ALL REFS*/<|protected [|{| isWriteAccess: true, isDefinition: true |}d|];|> // private e; // } // const enum E { @@ -405,173 +366,157 @@ // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "property", - "name": "(property) C1.d: any", - "textSpan": { - "start": 86, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "d", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 76, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 76, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // /*FIND ALL REFS*/<|protected [|d|];|> + // private e; + // } + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.d: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "d", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; // readonly b; // public c; // protected d; -// /*FIND ALL REFS*/private [|e|]; +// /*FIND ALL REFS*/<|private [|{| isWriteAccess: true, isDefinition: true |}e|];|> // } // const enum E { // } // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "property", - "name": "(property) C1.e: any", - "textSpan": { - "start": 101, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "e", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 93, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 101, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 93, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // protected d; + // /*FIND ALL REFS*/<|private [|e|];|> + // } + // const enum E { + // } + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) C1.e: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "e", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; @@ -580,68 +525,60 @@ // protected d; // private e; // } -// /*FIND ALL REFS*/const enum [|E|] { -// } +// /*FIND ALL REFS*/<|const enum [|{| isWriteAccess: true, isDefinition: true |}E|] { +// }|> // async function fn() {} // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "enum", - "name": "const enum E", - "textSpan": { - "start": 117, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "enum", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "E", - "kind": "enumName" - } - ], - "contextSpan": { - "start": 106, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 117, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 106, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // } + // /*FIND ALL REFS*/<|const enum [|E|] { + // }|> + // async function fn() {} + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "enum", + "name": "const enum E", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "enum", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "E", + "kind": "enumName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; @@ -652,90 +589,82 @@ // } // const enum E { // } -// /*FIND ALL REFS*/async function [|fn|]() {} +// /*FIND ALL REFS*/<|async function [|{| isWriteAccess: true, isDefinition: true |}fn|]() {}|> // export default class C2 {} -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "function", - "name": "function fn(): Promise", - "textSpan": { - "start": 138, - "length": 2 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fn", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Promise", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ">", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 123, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 138, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 123, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // } + // const enum E { + // } + // /*FIND ALL REFS*/<|async function [|fn|]() {}|> + // export default class C2 {} + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function fn(): Promise", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fn", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Promise", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; @@ -747,57 +676,49 @@ // const enum E { // } // async function fn() {} -// /*FIND ALL REFS*/export default class [|C2|] {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "class", - "name": "class C2", - "textSpan": { - "start": 167, - "length": 2 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "className" - } - ], - "contextSpan": { - "start": 146, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 167, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 146, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } +// /*FIND ALL REFS*/<|export default class [|{| isWriteAccess: true, isDefinition: true |}C2|] {}|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // } + // const enum E { + // } + // async function fn() {} + // /*FIND ALL REFS*/<|export default class [|C2|] {}|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C2", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForModifiers.ts === // declare abstract class C1 { // static a; @@ -809,53 +730,42 @@ // const enum E { // } // async function fn() {} -// export /*FIND ALL REFS*/[|default|] class C2 {} - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "kind": "class", - "name": "class C2", - "textSpan": { - "start": 167, - "length": 2 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C2", - "kind": "className" - } - ], - "contextSpan": { - "start": 146, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 153, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/referencesForModifiers.ts", - "contextSpan": { - "start": 146, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}default|] class C2 {}|> + + // === Definitions === + // === /tests/cases/fourslash/referencesForModifiers.ts === + // declare abstract class C1 { + // static a; + // readonly b; + // public c; + // protected d; + // private e; + // } + // const enum E { + // } + // async function fn() {} + // <|export /*FIND ALL REFS*/default class [|C2|] {}|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C2", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C2", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForNoContext.baseline.jsonc b/tests/baselines/reference/referencesForNoContext.baseline.jsonc index 795175276bb60..ab97a8fcaf4f3 100644 --- a/tests/baselines/reference/referencesForNoContext.baseline.jsonc +++ b/tests/baselines/reference/referencesForNoContext.baseline.jsonc @@ -1,7 +1,97 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesForNoContext.ts === +// module modTest { +// //Declare +// export var modVar:number; +// /*FIND ALL REFS*/ +// +// //Increments +// modVar++; +// +// class testCls{ +// +// } +// +// function testFn(){ +// //Increments +// modVar++; +// } +// +// module testMod { +// } +// } -undefined -undefined -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/referencesForNoContext.ts === +// module modTest { +// //Declare +// export var modVar:number; +// +// +// //Increments +// modVar++; +// +// class testCls{ +// /*FIND ALL REFS*/ +// } +// +// function testFn(){ +// //Increments +// modVar++; +// } +// +// module testMod { +// } +// } + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForNoContext.ts === +// module modTest { +// //Declare +// export var modVar:number; +// +// +// //Increments +// modVar++; +// +// class testCls{ +// +// } +// +// function testFn(){ +// //Increments +// modVar++; +// } /*FIND ALL REFS*/ +// +// module testMod { +// } +// } + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesForNoContext.ts === +// module modTest { +// //Declare +// export var modVar:number; +// +// +// //Increments +// modVar++; +// +// class testCls{ +// +// } +// +// function testFn(){ +// //Increments +// modVar++; +// } +// /*FIND ALL REFS*/ +// module testMod { +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/referencesForNumericLiteralPropertyNames.baseline.jsonc b/tests/baselines/reference/referencesForNumericLiteralPropertyNames.baseline.jsonc index 6fbde50f0aba8..f202b823996c4 100644 --- a/tests/baselines/reference/referencesForNumericLiteralPropertyNames.baseline.jsonc +++ b/tests/baselines/reference/referencesForNumericLiteralPropertyNames.baseline.jsonc @@ -1,125 +1,77 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts === // class Foo { -// public /*FIND ALL REFS*/[|12|]: any; +// <|public /*FIND ALL REFS*/[|{| isDefinition: true |}12|]: any;|> // } // // var x: Foo; // x[[|12|]]; -// x = { "[|12|]": 0 }; -// x = { [|12|]: 0 }; +// x = { <|"[|{| isWriteAccess: true |}12|]": 0|> }; +// x = { <|[|{| isWriteAccess: true |}12|]: 0|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts", - "kind": "property", - "name": "(property) Foo[12]: any", - "textSpan": { - "start": 23, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "12", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts", - "contextSpan": { - "start": 16, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 49, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 61, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts", - "contextSpan": { - "start": 60, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 77, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts", - "contextSpan": { - "start": 77, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForNumericLiteralPropertyNames.ts === + // class Foo { + // <|public /*FIND ALL REFS*/[|12|]: any;|> + // } + // + // var x: Foo; + // x[12]; + // x = { "12": 0 }; + // x = { 12: 0 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo[12]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "12", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForObjectLiteralProperties.baseline.jsonc b/tests/baselines/reference/referencesForObjectLiteralProperties.baseline.jsonc index 650a8111b3b9d..b5150a27f3fd2 100644 --- a/tests/baselines/reference/referencesForObjectLiteralProperties.baseline.jsonc +++ b/tests/baselines/reference/referencesForObjectLiteralProperties.baseline.jsonc @@ -1,399 +1,245 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === -// var x = { /*FIND ALL REFS*/[|add|]: 0, b: "string" }; +// var x = { /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}add|]: 0|>, b: "string" }; // x["[|add|]"]; // x.[|add|]; // var y = x; // y.[|add|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) add: number", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "add", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "contextSpan": { - "start": 10, - "length": 6 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 36, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 63, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === + // var x = { /*FIND ALL REFS*/<|[|add|]: 0|>, b: "string" }; + // x["add"]; + // x.add; + // var y = x; + // y.add; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) add: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "add", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === -// var x = { [|add|]: 0, b: "string" }; +// var x = { <|[|{| isWriteAccess: true |}add|]: 0|>, b: "string" }; // x["/*FIND ALL REFS*/[|add|]"]; // x.[|add|]; // var y = x; // y.[|add|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) add: number", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "add", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "contextSpan": { - "start": 10, - "length": 6 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 63, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === + // var x = { <|[|add|]: 0|>, b: "string" }; + // x["/*FIND ALL REFS*/add"]; + // x.add; + // var y = x; + // y.add; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) add: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "add", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === -// var x = { [|add|]: 0, b: "string" }; +// var x = { <|[|{| isWriteAccess: true |}add|]: 0|>, b: "string" }; // x["[|add|]"]; // x./*FIND ALL REFS*/[|add|]; // var y = x; // y.[|add|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) add: number", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "add", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "contextSpan": { - "start": 10, - "length": 6 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 63, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === + // var x = { <|[|add|]: 0|>, b: "string" }; + // x["add"]; + // x./*FIND ALL REFS*/add; + // var y = x; + // y.add; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) add: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "add", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === -// var x = { [|add|]: 0, b: "string" }; +// var x = { <|[|{| isWriteAccess: true |}add|]: 0|>, b: "string" }; // x["[|add|]"]; // x.[|add|]; // var y = x; // y./*FIND ALL REFS*/[|add|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "kind": "property", - "name": "(property) add: number", - "textSpan": { - "start": 10, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "add", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 6 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "contextSpan": { - "start": 10, - "length": 6 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 45, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 63, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForObjectLiteralProperties.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForObjectLiteralProperties.ts === + // var x = { <|[|add|]: 0|>, b: "string" }; + // x["add"]; + // x.add; + // var y = x; + // y./*FIND ALL REFS*/add; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) add: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "add", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForOverrides.baseline.jsonc b/tests/baselines/reference/referencesForOverrides.baseline.jsonc index 99fc0b42bf450..33d911759b9d1 100644 --- a/tests/baselines/reference/referencesForOverrides.baseline.jsonc +++ b/tests/baselines/reference/referencesForOverrides.baseline.jsonc @@ -1,13 +1,14 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForOverrides.ts === // module FindRef3 { // module SimpleClassTest { // export class Foo { -// public /*FIND ALL REFS*/[|foo|](): void { -// } +// <|public /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}foo|](): void { +// }|> // } // export class Bar extends Foo { -// public [|foo|](): void { -// } +// <|public [|{| defId: 1, isWriteAccess: true |}foo|](): void { +// }|> // } // } // @@ -60,7 +61,7 @@ // // function test() { // var x = new SimpleClassTest.Bar(); -// x.[|foo|](); +// x.[|{| defId: 1 |}foo|](); // // var y: SimpleInterfaceTest.IBar = null; // y.ifoo(); @@ -74,198 +75,220 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleClassTest.Foo.foo(): void", - "textSpan": { - "start": 75, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 68, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 75, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 68, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForOverrides.ts === + // module FindRef3 { + // module SimpleClassTest { + // export class Foo { + // <|public /*FIND ALL REFS*/[|{| defId: 0 |}foo|](): void { + // }|> + // } + // export class Bar extends Foo { + // <|public [|{| defId: 1 |}foo|](): void { + // }|> + // } + // } + // + // module SimpleInterfaceTest { + // export interface IFoo { + // ifoo(): void; + // } + // export interface IBar extends IFoo { + // ifoo(): void; + // } + // } + // + // module SimpleClassInterfaceTest { + // export interface IFoo { + // icfoo(): void; + // } + // export class Bar implements IFoo { + // public icfoo(): void { + // } + // } + // } + // + // module Test { + // export interface IBase { + // field: string; + // method(): void; + // } + // + // export interface IBlah extends IBase { + // field: string; + // } + // + // export interface IBlah2 extends IBlah { + // field: string; + // } + // + // export interface IDerived extends IBlah2 { + // method(): void; + // } + // + // export class Bar implements IDerived { + // public field: string; + // public method(): void { } + // } + // + // export class BarBlah extends Bar { + // public field: string; + // } + // } + // + // function test() { + // var x = new SimpleClassTest.Bar(); + // x.foo(); + // + // var y: SimpleInterfaceTest.IBar = null; + // y.ifoo(); + // + // var w: SimpleClassInterfaceTest.Bar = null; + // w.icfoo(); + // + // var z = new Test.BarBlah(); + // z.field = ""; + // z.method(); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleClassTest.Bar.foo(): void", - "textSpan": { - "start": 141, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 134, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 141, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 134, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 980, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleClassTest.Bar.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForOverrides.ts === // module FindRef3 { // module SimpleClassTest { @@ -281,10 +304,10 @@ // // module SimpleInterfaceTest { // export interface IFoo { -// /*FIND ALL REFS*/[|ifoo|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}ifoo|](): void;|> // } // export interface IBar extends IFoo { -// [|ifoo|](): void; +// <|[|{| defId: 1 |}ifoo|](): void;|> // } // } // @@ -331,7 +354,7 @@ // x.foo(); // // var y: SimpleInterfaceTest.IBar = null; -// y.[|ifoo|](); +// y.[|{| defId: 1 |}ifoo|](); // // var w: SimpleClassInterfaceTest.Bar = null; // w.icfoo(); @@ -342,198 +365,220 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleInterfaceTest.IFoo.ifoo(): void", - "textSpan": { - "start": 227, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleInterfaceTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "ifoo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 227, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 227, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 227, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForOverrides.ts === + // module FindRef3 { + // module SimpleClassTest { + // export class Foo { + // public foo(): void { + // } + // } + // export class Bar extends Foo { + // public foo(): void { + // } + // } + // } + // + // module SimpleInterfaceTest { + // export interface IFoo { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}ifoo|](): void;|> + // } + // export interface IBar extends IFoo { + // <|[|{| defId: 1 |}ifoo|](): void;|> + // } + // } + // + // module SimpleClassInterfaceTest { + // export interface IFoo { + // icfoo(): void; + // } + // export class Bar implements IFoo { + // public icfoo(): void { + // } + // } + // } + // + // module Test { + // export interface IBase { + // field: string; + // method(): void; + // } + // + // export interface IBlah extends IBase { + // field: string; + // } + // + // export interface IBlah2 extends IBlah { + // field: string; + // } + // + // export interface IDerived extends IBlah2 { + // method(): void; + // } + // + // export class Bar implements IDerived { + // public field: string; + // public method(): void { } + // } + // + // export class BarBlah extends Bar { + // public field: string; + // } + // } + // + // function test() { + // var x = new SimpleClassTest.Bar(); + // x.foo(); + // + // var y: SimpleInterfaceTest.IBar = null; + // y.ifoo(); + // + // var w: SimpleClassInterfaceTest.Bar = null; + // w.icfoo(); + // + // var z = new Test.BarBlah(); + // z.field = ""; + // z.method(); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleInterfaceTest.IFoo.ifoo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleInterfaceTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "ifoo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleInterfaceTest.IBar.ifoo(): void", - "textSpan": { - "start": 287, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleInterfaceTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IBar", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "ifoo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 287, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 287, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 287, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1034, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleInterfaceTest.IBar.ifoo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleInterfaceTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IBar", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "ifoo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForOverrides.ts === // module FindRef3 { // module SimpleClassTest { @@ -558,11 +603,11 @@ // // module SimpleClassInterfaceTest { // export interface IFoo { -// /*FIND ALL REFS*/[|icfoo|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}icfoo|](): void;|> // } // export class Bar implements IFoo { -// public [|icfoo|](): void { -// } +// <|public [|{| defId: 1, isWriteAccess: true |}icfoo|](): void { +// }|> // } // } // @@ -602,7 +647,7 @@ // y.ifoo(); // // var w: SimpleClassInterfaceTest.Bar = null; -// w.[|icfoo|](); +// w.[|{| defId: 1 |}icfoo|](); // // var z = new Test.BarBlah(); // z.field = ""; @@ -610,198 +655,220 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleClassInterfaceTest.IFoo.icfoo(): void", - "textSpan": { - "start": 373, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleClassInterfaceTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "icfoo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 373, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 373, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 373, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForOverrides.ts === + // module FindRef3 { + // module SimpleClassTest { + // export class Foo { + // public foo(): void { + // } + // } + // export class Bar extends Foo { + // public foo(): void { + // } + // } + // } + // + // module SimpleInterfaceTest { + // export interface IFoo { + // ifoo(): void; + // } + // export interface IBar extends IFoo { + // ifoo(): void; + // } + // } + // + // module SimpleClassInterfaceTest { + // export interface IFoo { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}icfoo|](): void;|> + // } + // export class Bar implements IFoo { + // <|public [|{| defId: 1 |}icfoo|](): void { + // }|> + // } + // } + // + // module Test { + // export interface IBase { + // field: string; + // method(): void; + // } + // + // export interface IBlah extends IBase { + // field: string; + // } + // + // export interface IBlah2 extends IBlah { + // field: string; + // } + // + // export interface IDerived extends IBlah2 { + // method(): void; + // } + // + // export class Bar implements IDerived { + // public field: string; + // public method(): void { } + // } + // + // export class BarBlah extends Bar { + // public field: string; + // } + // } + // + // function test() { + // var x = new SimpleClassTest.Bar(); + // x.foo(); + // + // var y: SimpleInterfaceTest.IBar = null; + // y.ifoo(); + // + // var w: SimpleClassInterfaceTest.Bar = null; + // w.icfoo(); + // + // var z = new Test.BarBlah(); + // z.field = ""; + // z.method(); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleClassInterfaceTest.IFoo.icfoo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleClassInterfaceTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "icfoo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) SimpleClassInterfaceTest.Bar.icfoo(): void", - "textSpan": { - "start": 439, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SimpleClassInterfaceTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "icfoo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 432, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 439, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 432, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1105, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) SimpleClassInterfaceTest.Bar.icfoo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SimpleClassInterfaceTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "icfoo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForOverrides.ts === // module FindRef3 { // module SimpleClassTest { @@ -836,16 +903,16 @@ // // module Test { // export interface IBase { -// /*FIND ALL REFS*/[|field|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}field|]: string;|> // method(): void; // } // // export interface IBlah extends IBase { -// [|field|]: string; +// <|[|{| defId: 1 |}field|]: string;|> // } // // export interface IBlah2 extends IBlah { -// [|field|]: string; +// <|[|{| defId: 2 |}field|]: string;|> // } // // export interface IDerived extends IBlah2 { @@ -853,12 +920,12 @@ // } // // export class Bar implements IDerived { -// public [|field|]: string; +// <|public [|{| defId: 3 |}field|]: string;|> // public method(): void { } // } // // export class BarBlah extends Bar { -// public [|field|]: string; +// <|public [|{| defId: 4 |}field|]: string;|> // } // } // @@ -873,433 +940,380 @@ // w.icfoo(); // // var z = new Test.BarBlah(); -// z.[|field|] = ""; +// z.[|{| defId: 4, isWriteAccess: true |}field|] = ""; // z.method(); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "property", - "name": "(property) Test.IBase.field: string", - "textSpan": { - "start": 513, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IBase", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "field", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 513, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 513, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 513, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForOverrides.ts === + // module FindRef3 { + // module SimpleClassTest { + // export class Foo { + // public foo(): void { + // } + // } + // export class Bar extends Foo { + // public foo(): void { + // } + // } + // } + // + // module SimpleInterfaceTest { + // export interface IFoo { + // ifoo(): void; + // } + // export interface IBar extends IFoo { + // ifoo(): void; + // } + // } + // + // module SimpleClassInterfaceTest { + // export interface IFoo { + // icfoo(): void; + // } + // export class Bar implements IFoo { + // public icfoo(): void { + // } + // } + // } + // + // module Test { + // export interface IBase { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}field|]: string;|> + // method(): void; + // } + // + // export interface IBlah extends IBase { + // <|[|{| defId: 1 |}field|]: string;|> + // } + // + // export interface IBlah2 extends IBlah { + // <|[|{| defId: 2 |}field|]: string;|> + // } + // + // export interface IDerived extends IBlah2 { + // method(): void; + // } + // + // export class Bar implements IDerived { + // <|public [|{| defId: 3 |}field|]: string;|> + // public method(): void { } + // } + // + // export class BarBlah extends Bar { + // <|public [|{| defId: 4 |}field|]: string;|> + // } + // } + // + // function test() { + // var x = new SimpleClassTest.Bar(); + // x.foo(); + // + // var y: SimpleInterfaceTest.IBar = null; + // y.ifoo(); + // + // var w: SimpleClassInterfaceTest.Bar = null; + // w.icfoo(); + // + // var z = new Test.BarBlah(); + // z.field = ""; + // z.method(); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.IBase.field: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IBase", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "field", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "property", - "name": "(property) Test.IBlah.field: string", - "textSpan": { - "start": 596, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IBlah", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "field", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 596, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 596, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 596, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.IBlah.field: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IBlah", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "field", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "property", - "name": "(property) Test.IBlah2.field: string", - "textSpan": { - "start": 661, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IBlah2", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "field", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 661, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 661, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 661, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.IBlah2.field: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IBlah2", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "field", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "property", - "name": "(property) Test.Bar.field: string", - "textSpan": { - "start": 801, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "field", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 794, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 801, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 794, - "length": 21 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.Bar.field: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "field", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "property", - "name": "(property) Test.BarBlah.field: string", - "textSpan": { - "start": 897, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "BarBlah", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "field", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 890, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 897, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 890, - "length": 21 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1149, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 4, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Test.BarBlah.field: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "BarBlah", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "field", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForOverrides.ts === // module FindRef3 { // module SimpleClassTest { @@ -1335,7 +1349,7 @@ // module Test { // export interface IBase { // field: string; -// /*FIND ALL REFS*/[|method|](): void; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}method|](): void;|> // } // // export interface IBlah extends IBase { @@ -1347,12 +1361,12 @@ // } // // export interface IDerived extends IBlah2 { -// [|method|](): void; +// <|[|{| defId: 1 |}method|](): void;|> // } // // export class Bar implements IDerived { // public field: string; -// public [|method|](): void { } +// <|public [|{| defId: 2, isWriteAccess: true |}method|](): void { }|> // } // // export class BarBlah extends Bar { @@ -1372,288 +1386,282 @@ // // var z = new Test.BarBlah(); // z.field = ""; -// z.[|method|](); +// z.[|{| defId: 2 |}method|](); // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) Test.IBase.method(): void", - "textSpan": { - "start": 531, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IBase", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 531, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 531, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 531, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForOverrides.ts === + // module FindRef3 { + // module SimpleClassTest { + // export class Foo { + // public foo(): void { + // } + // } + // export class Bar extends Foo { + // public foo(): void { + // } + // } + // } + // + // module SimpleInterfaceTest { + // export interface IFoo { + // ifoo(): void; + // } + // export interface IBar extends IFoo { + // ifoo(): void; + // } + // } + // + // module SimpleClassInterfaceTest { + // export interface IFoo { + // icfoo(): void; + // } + // export class Bar implements IFoo { + // public icfoo(): void { + // } + // } + // } + // + // module Test { + // export interface IBase { + // field: string; + // /*FIND ALL REFS*/<|[|{| defId: 0 |}method|](): void;|> + // } + // + // export interface IBlah extends IBase { + // field: string; + // } + // + // export interface IBlah2 extends IBlah { + // field: string; + // } + // + // export interface IDerived extends IBlah2 { + // <|[|{| defId: 1 |}method|](): void;|> + // } + // + // export class Bar implements IDerived { + // public field: string; + // <|public [|{| defId: 2 |}method|](): void { }|> + // } + // + // export class BarBlah extends Bar { + // public field: string; + // } + // } + // + // function test() { + // var x = new SimpleClassTest.Bar(); + // x.foo(); + // + // var y: SimpleInterfaceTest.IBar = null; + // y.ifoo(); + // + // var w: SimpleClassInterfaceTest.Bar = null; + // w.icfoo(); + // + // var z = new Test.BarBlah(); + // z.field = ""; + // z.method(); + // } + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.IBase.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IBase", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) Test.IDerived.method(): void", - "textSpan": { - "start": 729, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IDerived", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 729, - "length": 15 - } - }, - "references": [ - { - "textSpan": { - "start": 729, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 729, - "length": 15 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.IDerived.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IDerived", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "kind": "method", - "name": "(method) Test.Bar.method(): void", - "textSpan": { - "start": 826, - "length": 6 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Test", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Bar", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 819, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 826, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "contextSpan": { - "start": 819, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1171, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/referencesForOverrides.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Test.Bar.method(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Test", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Bar", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForPropertiesOfGenericType.baseline.jsonc b/tests/baselines/reference/referencesForPropertiesOfGenericType.baseline.jsonc index 49ef54d550079..047ebe7ef5701 100644 --- a/tests/baselines/reference/referencesForPropertiesOfGenericType.baseline.jsonc +++ b/tests/baselines/reference/referencesForPropertiesOfGenericType.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === // interface IFoo { -// /*FIND ALL REFS*/[|doSomething|](v: T): T; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}doSomething|](v: T): T;|> // } // // var x: IFoo; @@ -9,140 +10,112 @@ // var y: IFoo; // y.[|doSomething|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "kind": "method", - "name": "(method) IFoo.doSomething(v: T): T", - "textSpan": { - "start": 24, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doSomething", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "v", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - } - ], - "contextSpan": { - "start": 24, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "contextSpan": { - "start": 24, - "length": 21 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 72, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 115, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === + // interface IFoo { + // /*FIND ALL REFS*/<|[|doSomething|](v: T): T;|> + // } + // + // var x: IFoo; + // x.doSomething("ss"); + // + // var y: IFoo; + // y.doSomething(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) IFoo.doSomething(v: T): T", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doSomething", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "v", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === // interface IFoo { -// [|doSomething|](v: T): T; +// <|[|doSomething|](v: T): T;|> // } // // var x: IFoo; @@ -151,137 +124,112 @@ // var y: IFoo; // y.[|doSomething|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "kind": "method", - "name": "(method) IFoo.doSomething(v: T): T", - "textSpan": { - "start": 24, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doSomething", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "v", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - } - ], - "contextSpan": { - "start": 24, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "contextSpan": { - "start": 24, - "length": 21 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 72, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 115, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === + // interface IFoo { + // <|[|doSomething|](v: T): T;|> + // } + // + // var x: IFoo; + // x./*FIND ALL REFS*/doSomething("ss"); + // + // var y: IFoo; + // y.doSomething(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) IFoo.doSomething(v: T): T", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doSomething", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "v", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === // interface IFoo { -// [|doSomething|](v: T): T; +// <|[|doSomething|](v: T): T;|> // } // // var x: IFoo; @@ -290,130 +238,102 @@ // var y: IFoo; // y./*FIND ALL REFS*/[|doSomething|](12); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "kind": "method", - "name": "(method) IFoo.doSomething(v: T): T", - "textSpan": { - "start": 24, - "length": 11 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IFoo", - "kind": "interfaceName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "doSomething", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "v", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - } - ], - "contextSpan": { - "start": 24, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "contextSpan": { - "start": 24, - "length": 21 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 72, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 115, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/referencesForPropertiesOfGenericType.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForPropertiesOfGenericType.ts === + // interface IFoo { + // <|[|doSomething|](v: T): T;|> + // } + // + // var x: IFoo; + // x.doSomething("ss"); + // + // var y: IFoo; + // y./*FIND ALL REFS*/doSomething(12); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) IFoo.doSomething(v: T): T", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IFoo", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "doSomething", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "v", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc b/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc index c8e80f8947019..590f6a59e743d 100644 --- a/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /main.ts === // // import ... = ... -// /*FIND ALL REFS*/import [|A|] = require("./a"); +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}A|] = require("./a");|> // namespace N { } // import N2 = N; // @@ -24,86 +25,91 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import A = require(\"./a\")", - "textSpan": { - "start": 27, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "\"./a\"", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 20, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 27, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 20, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // /*FIND ALL REFS*/<|import [|A|] = require("./a");|> + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import A = require(\"./a\")", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "\"./a\"", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... -// import A = /*FIND ALL REFS*/require("[|./a|]"); +// <|import A = /*FIND ALL REFS*/require("[|./a|]");|> // namespace N { } // import N2 = N; // @@ -127,55 +133,42 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a.ts", - "kind": "module", - "name": "module \"/a\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/a\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 40, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 20, - "length": 26 - }, - "isWriteAccess": false - } + // === Definitions === + // === /a.ts === + // [|export const a = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/a\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/a\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); // namespace N { } -// /*FIND ALL REFS*/import [|N2|] = N; +// /*FIND ALL REFS*/<|import [|{| isWriteAccess: true, isDefinition: true |}N2|] = N;|> // // // import ... from ... // import type B from "./b"; @@ -197,106 +190,108 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) namespace N2\nimport N2 = N", - "textSpan": { - "start": 70, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N2", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N2", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 63, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 70, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 63, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // /*FIND ALL REFS*/<|import [|N2|] = N;|> + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N2\nimport N2 = N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N2", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N2", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - } -] + } + ] + -// === /b.ts === -// export default class [|B|] {} +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -304,7 +299,7 @@ // import N2 = N; // // // import ... from ... -// /*FIND ALL REFS*/import type [|B|] from "./b"; +// /*FIND ALL REFS*/<|import type [|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] from "./b";|> // import type * as C from "./c"; // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; @@ -323,136 +318,120 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 114, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 102, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 102, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /b.ts === +// <|export default class [|{| defId: 1, isWriteAccess: true |}B|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // /*FIND ALL REFS*/<|import type [|{| defId: 0 |}B|] from "./b";|> + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /b.ts === + // <|export default class [|{| defId: 1 |}B|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] + } + ] -// === /b.ts === -// export default class [|B|] {} + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -460,7 +439,7 @@ // import N2 = N; // // // import ... from ... -// import /*FIND ALL REFS*/type [|B|] from "./b"; +// <|import /*FIND ALL REFS*/type [|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] from "./b";|> // import type * as C from "./c"; // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; @@ -479,133 +458,120 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 114, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 102, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 114, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 102, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /b.ts === +// <|export default class [|{| defId: 1, isWriteAccess: true |}B|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // <|import /*FIND ALL REFS*/type [|{| defId: 0 |}B|] from "./b";|> + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /b.ts === + // <|export default class [|{| defId: 1 |}B|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/b.ts", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -613,7 +579,7 @@ // import N2 = N; // // // import ... from ... -// import type B /*FIND ALL REFS*/from "[|./b|]"; +// <|import type B /*FIND ALL REFS*/from "[|./b|]";|> // import type * as C from "./c"; // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; @@ -632,50 +598,37 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/b.ts", - "kind": "module", - "name": "module \"/b\"", - "textSpan": { - "start": 0, - "length": 25 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/b\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 122, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 102, - "length": 25 - }, - "isWriteAccess": false - } + // === Definitions === + // === /b.ts === + // [|export default class B {}|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/b\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/b\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -684,7 +637,7 @@ // // // import ... from ... // import type B from "./b"; -// /*FIND ALL REFS*/import type * as [|C|] from "./c"; +// /*FIND ALL REFS*/<|import type * as [|{| isWriteAccess: true, isDefinition: true |}C|] from "./c";|> // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; // @@ -702,55 +655,60 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import C", - "textSpan": { - "start": 145, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 128, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 128, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // /*FIND ALL REFS*/<|import type * as [|C|] from "./c";|> + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import C", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -759,7 +717,7 @@ // // // import ... from ... // import type B from "./b"; -// import /*FIND ALL REFS*/type * as [|C|] from "./c"; +// <|import /*FIND ALL REFS*/type * as [|{| isWriteAccess: true, isDefinition: true |}C|] from "./c";|> // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; // @@ -777,55 +735,60 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import C", - "textSpan": { - "start": 145, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 128, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 128, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // <|import /*FIND ALL REFS*/type * as [|C|] from "./c";|> + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import C", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -834,7 +797,7 @@ // // // import ... from ... // import type B from "./b"; -// import type * /*FIND ALL REFS*/as [|C|] from "./c"; +// <|import type * /*FIND ALL REFS*/as [|{| isWriteAccess: true, isDefinition: true |}C|] from "./c";|> // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; // @@ -852,55 +815,60 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import C", - "textSpan": { - "start": 145, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 128, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 128, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // <|import type * /*FIND ALL REFS*/as [|C|] from "./c";|> + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import C", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -909,7 +877,7 @@ // // // import ... from ... // import type B from "./b"; -// import type * as C /*FIND ALL REFS*/from "[|./c|]"; +// <|import type * as C /*FIND ALL REFS*/from "[|./c|]";|> // import type { D } from "./d"; // import type { e1, e2 as e3 } from "./e"; // @@ -927,53 +895,37 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/c.ts", - "kind": "module", - "name": "module \"/c\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/c\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 153, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 128, - "length": 30 - }, - "isWriteAccess": false - } + // === Definitions === + // === /c.ts === + // [|export const c = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/c\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/c\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + -// === /d.ts === -// export class [|D|] {} +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -983,7 +935,7 @@ // // import ... from ... // import type B from "./b"; // import type * as C from "./c"; -// /*FIND ALL REFS*/import type { [|D|] } from "./d"; +// /*FIND ALL REFS*/<|import type { [|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] } from "./d";|> // import type { e1, e2 as e3 } from "./e"; // // // import "module" @@ -1000,136 +952,120 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class D\nimport D", - "textSpan": { - "start": 173, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 159, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 173, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 159, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /d.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}D|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // /*FIND ALL REFS*/<|import type { [|{| defId: 0 |}D|] } from "./d";|> + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /d.ts === + // <|export class [|{| defId: 1 |}D|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "class", - "name": "class D", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class D", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + } ] - } -] + } + ] -// === /d.ts === -// export class [|D|] {} + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1139,7 +1075,7 @@ // // import ... from ... // import type B from "./b"; // import type * as C from "./c"; -// import /*FIND ALL REFS*/type { [|D|] } from "./d"; +// <|import /*FIND ALL REFS*/type { [|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] } from "./d";|> // import type { e1, e2 as e3 } from "./e"; // // // import "module" @@ -1156,133 +1092,120 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class D\nimport D", - "textSpan": { - "start": 173, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 159, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 173, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 159, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /d.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}D|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // <|import /*FIND ALL REFS*/type { [|{| defId: 0 |}D|] } from "./d";|> + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /d.ts === + // <|export class [|{| defId: 1 |}D|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "class", - "name": "class D", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/d.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class D", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1292,7 +1215,7 @@ // // import ... from ... // import type B from "./b"; // import type * as C from "./c"; -// import type { D } /*FIND ALL REFS*/from "[|./d|]"; +// <|import type { D } /*FIND ALL REFS*/from "[|./d|]";|> // import type { e1, e2 as e3 } from "./e"; // // // import "module" @@ -1309,54 +1232,37 @@ // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/d.ts", - "kind": "module", - "name": "module \"/d\"", - "textSpan": { - "start": 0, - "length": 17 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/d\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 183, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 159, - "length": 29 - }, - "isWriteAccess": false - } + // === Definitions === + // === /d.ts === + // [|export class D {}|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/d\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/d\"", + "kind": "stringLiteral" + } ] - } -] + } + ] -undefined -undefined +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1367,7 +1273,7 @@ undefined // import type B from "./b"; // import type * as C from "./c"; // import type { D } from "./d"; -// import type { e1, e2 as e3 } /*FIND ALL REFS*/from "[|./e|]"; +// /*FIND ALL REFS*/import type { e1, e2 as e3 } from "./e"; // // // import "module" // import "./f"; @@ -1383,50 +1289,96 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/e.ts", - "kind": "module", - "name": "module \"/e\"", - "textSpan": { - "start": 0, - "length": 41 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/e\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 224, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 189, - "length": 40 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// import /*FIND ALL REFS*/type { e1, e2 as e3 } from "./e"; +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// export type { j1, j2 as j3 } from "./j"; +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// export type { z2, z3 as z4 }; + + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// <|import type { e1, e2 as e3 } /*FIND ALL REFS*/from "[|./e|]";|> +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// export type { j1, j2 as j3 } from "./j"; +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// export type { z2, z3 as z4 }; + + // === Definitions === + // === /e.ts === + // [|export const e1 = 1; + // export const e2 = 2;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/e\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/e\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1437,7 +1389,7 @@ undefined // import type B from "./b"; // import type * as C from "./c"; // import type { D } from "./d"; -// import type { e1, e2 /*FIND ALL REFS*/as [|e3|] } from "./e"; +// <|import type { e1, e2 /*FIND ALL REFS*/as [|{| isWriteAccess: true, isDefinition: true |}e3|] } from "./e";|> // // // import "module" // import "./f"; @@ -1453,99 +1405,104 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) const e3: 2\nimport e3", - "textSpan": { - "start": 213, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "e3", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "2", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "e3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 189, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 213, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 189, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // <|import type { e1, e2 /*FIND ALL REFS*/as [|e3|] } from "./e";|> + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const e3: 2\nimport e3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "e3", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "2", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "e3", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1559,7 +1516,7 @@ undefined // import type { e1, e2 as e3 } from "./e"; // // // import "module" -// /*FIND ALL REFS*/import "[|./f|]"; +// /*FIND ALL REFS*/<|import "[|./f|]";|> // // // export ... from ... // export type * from "./g"; @@ -1572,50 +1529,37 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/f.ts", - "kind": "module", - "name": "module \"/f\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/f\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 258, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 250, - "length": 13 - }, - "isWriteAccess": false - } + // === Definitions === + // === /f.ts === + // [|export const f = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/f\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/f\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1632,7 +1576,7 @@ undefined // import "./f"; // // // export ... from ... -// /*FIND ALL REFS*/export type * from "[|./g|]"; +// /*FIND ALL REFS*/<|export type * from "[|./g|]";|> // export type * as H from "./h"; // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; @@ -1642,50 +1586,37 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/g.ts", - "kind": "module", - "name": "module \"/g\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/g\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 308, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 288, - "length": 25 - }, - "isWriteAccess": false - } + // === Definitions === + // === /g.ts === + // [|export const g = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/g\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/g\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1702,7 +1633,7 @@ undefined // import "./f"; // // // export ... from ... -// export /*FIND ALL REFS*/type * from "[|./g|]"; +// <|export /*FIND ALL REFS*/type * from "[|./g|]";|> // export type * as H from "./h"; // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; @@ -1712,50 +1643,37 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/g.ts", - "kind": "module", - "name": "module \"/g\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/g\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 308, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 288, - "length": 25 - }, - "isWriteAccess": false - } + // === Definitions === + // === /g.ts === + // [|export const g = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/g\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/g\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1772,7 +1690,7 @@ undefined // import "./f"; // // // export ... from ... -// export type * /*FIND ALL REFS*/from "[|./g|]"; +// <|export type * /*FIND ALL REFS*/from "[|./g|]";|> // export type * as H from "./h"; // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; @@ -1782,50 +1700,37 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/g.ts", - "kind": "module", - "name": "module \"/g\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/g\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 308, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 288, - "length": 25 - }, - "isWriteAccess": false - } + // === Definitions === + // === /g.ts === + // [|export const g = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/g\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/g\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1843,7 +1748,7 @@ undefined // // // export ... from ... // export type * from "./g"; -// /*FIND ALL REFS*/export type * as [|H|] from "./h"; +// /*FIND ALL REFS*/<|export type * as [|{| isWriteAccess: true, isDefinition: true |}H|] from "./h";|> // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; @@ -1852,55 +1757,60 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import H", - "textSpan": { - "start": 331, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "H", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 314, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 331, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 314, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // /*FIND ALL REFS*/<|export type * as [|H|] from "./h";|> + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import H", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "H", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1918,7 +1828,7 @@ undefined // // // export ... from ... // export type * from "./g"; -// export /*FIND ALL REFS*/type * as [|H|] from "./h"; +// <|export /*FIND ALL REFS*/type * as [|{| isWriteAccess: true, isDefinition: true |}H|] from "./h";|> // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; @@ -1927,55 +1837,60 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import H", - "textSpan": { - "start": 331, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "H", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 314, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 331, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 314, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // <|export /*FIND ALL REFS*/type * as [|H|] from "./h";|> + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import H", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "H", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -1993,7 +1908,7 @@ undefined // // // export ... from ... // export type * from "./g"; -// export type * /*FIND ALL REFS*/as [|H|] from "./h"; +// <|export type * /*FIND ALL REFS*/as [|{| isWriteAccess: true, isDefinition: true |}H|] from "./h";|> // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; @@ -2002,55 +1917,60 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "import H", - "textSpan": { - "start": 331, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "H", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 314, - "length": 30 - } - }, - "references": [ - { - "textSpan": { - "start": 331, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 314, - "length": 30 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // <|export type * /*FIND ALL REFS*/as [|H|] from "./h";|> + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import H", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "H", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2068,7 +1988,7 @@ undefined // // // export ... from ... // export type * from "./g"; -// export type * as H /*FIND ALL REFS*/from "[|./h|]"; +// <|export type * as H /*FIND ALL REFS*/from "[|./h|]";|> // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; @@ -2077,53 +1997,37 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/h.ts", - "kind": "module", - "name": "module \"/h\"", - "textSpan": { - "start": 0, - "length": 19 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/h\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 339, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 314, - "length": 30 - }, - "isWriteAccess": false - } + // === Definitions === + // === /h.ts === + // [|export const h = 1;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/h\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/h\"", + "kind": "stringLiteral" + } ] - } -] + } + ] -// === /i.ts === -// export class [|I|] {} + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2142,7 +2046,7 @@ undefined // // export ... from ... // export type * from "./g"; // export type * as H from "./h"; -// /*FIND ALL REFS*/export type { [|I|] } from "./i"; +// /*FIND ALL REFS*/<|export type { [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] } from "./i";|> // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; // export type { Z1 }; @@ -2150,136 +2054,120 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class I\nexport I", - "textSpan": { - "start": 359, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 345, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 359, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 345, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /i.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}I|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // /*FIND ALL REFS*/<|export type { [|{| defId: 0 |}I|] } from "./i";|> + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /i.ts === + // <|export class [|{| defId: 1 |}I|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class I\nexport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/i.ts", - "kind": "class", - "name": "class I", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/i.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class I", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "className" + } ] - } -] + } + ] + -// === /i.ts === -// export class [|I|] {} +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2298,7 +2186,7 @@ undefined // // export ... from ... // export type * from "./g"; // export type * as H from "./h"; -// export /*FIND ALL REFS*/type { [|I|] } from "./i"; +// <|export /*FIND ALL REFS*/type { [|{| defId: 0, isWriteAccess: true, isDefinition: true |}I|] } from "./i";|> // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; // export type { Z1 }; @@ -2306,133 +2194,120 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) class I\nexport I", - "textSpan": { - "start": 359, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 345, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 359, - "length": 1 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 345, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } +// === /i.ts === +// <|export class [|{| defId: 1, isWriteAccess: true |}I|] {}|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // <|export /*FIND ALL REFS*/type { [|{| defId: 0 |}I|] } from "./i";|> + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === /i.ts === + // <|export class [|{| defId: 1 |}I|] {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class I\nexport I", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/i.ts", - "kind": "class", - "name": "class I", - "textSpan": { - "start": 13, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 13, - "length": 1 - }, - "fileName": "/i.ts", - "contextSpan": { - "start": 0, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class I", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2451,7 +2326,7 @@ undefined // // export ... from ... // export type * from "./g"; // export type * as H from "./h"; -// export type { I } /*FIND ALL REFS*/from "[|./i|]"; +// <|export type { I } /*FIND ALL REFS*/from "[|./i|]";|> // export type { j1, j2 as j3 } from "./j"; // type Z1 = 1; // export type { Z1 }; @@ -2459,54 +2334,66 @@ undefined // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/i.ts", - "kind": "module", - "name": "module \"/i\"", - "textSpan": { - "start": 0, - "length": 17 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/i\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 369, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 345, - "length": 29 - }, - "isWriteAccess": false - } + // === Definitions === + // === /i.ts === + // [|export class I {}|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/i\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/i\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// import type { e1, e2 as e3 } from "./e"; +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// /*FIND ALL REFS*/export type { j1, j2 as j3 } from "./j"; +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// export type { z2, z3 as z4 }; -undefined -undefined +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2526,57 +2413,74 @@ undefined // export type * from "./g"; // export type * as H from "./h"; // export type { I } from "./i"; -// export type { j1, j2 as j3 } /*FIND ALL REFS*/from "[|./j|]"; +// export /*FIND ALL REFS*/type { j1, j2 as j3 } from "./j"; // type Z1 = 1; // export type { Z1 }; // type Z2 = 2; // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/j.ts", - "kind": "module", - "name": "module \"/j\"", - "textSpan": { - "start": 0, - "length": 41 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/j\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 410, - "length": 3 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 375, - "length": 40 - }, - "isWriteAccess": false - } + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// import type { e1, e2 as e3 } from "./e"; +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// <|export type { j1, j2 as j3 } /*FIND ALL REFS*/from "[|./j|]";|> +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// export type { z2, z3 as z4 }; + + // === Definitions === + // === /j.ts === + // [|export const j1 = 1; + // export const j2 = 2;|] + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/j\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/j\"", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2596,106 +2500,111 @@ undefined // export type * from "./g"; // export type * as H from "./h"; // export type { I } from "./i"; -// export type { j1, j2 /*FIND ALL REFS*/as [|j3|] } from "./j"; +// <|export type { j1, j2 /*FIND ALL REFS*/as [|{| isWriteAccess: true, isDefinition: true |}j3|] } from "./j";|> // type Z1 = 1; // export type { Z1 }; // type Z2 = 2; // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "(alias) const j3: 2\nexport j3", - "textSpan": { - "start": 399, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j3", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "2", - "kind": "stringLiteral" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "j3", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 375, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 399, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 375, - "length": 40 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // <|export type { j1, j2 /*FIND ALL REFS*/as [|j3|] } from "./j";|> + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) const j3: 2\nexport j3", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j3", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "2", + "kind": "stringLiteral" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "j3", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2716,90 +2625,82 @@ undefined // export type * as H from "./h"; // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; -// type [|Z1|] = 1; -// /*FIND ALL REFS*/export type { [|Z1|] }; +// <|type [|{| isWriteAccess: true |}Z1|] = 1;|> +// /*FIND ALL REFS*/<|export type { [|{| isWriteAccess: true, isDefinition: true |}Z1|] };|> // type Z2 = 2; // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "type", - "name": "type Z1 = 1", - "textSpan": { - "start": 421, - "length": 2 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z1", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 416, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 421, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 416, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 443, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 429, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // <|type [|Z1|] = 1;|> + // /*FIND ALL REFS*/export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Z1 = 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z1", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2820,94 +2721,82 @@ undefined // export type * as H from "./h"; // export type { I } from "./i"; // export type { j1, j2 as j3 } from "./j"; -// type [|Z1|] = 1; -// export /*FIND ALL REFS*/type { [|Z1|] }; +// <|type [|{| isWriteAccess: true |}Z1|] = 1;|> +// <|export /*FIND ALL REFS*/type { [|{| isWriteAccess: true, isDefinition: true |}Z1|] };|> // type Z2 = 2; // type Z3 = 3; // export type { z2, z3 as z4 }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "type", - "name": "type Z1 = 1", - "textSpan": { - "start": 421, - "length": 2 - }, - "displayParts": [ - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Z1", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "1", - "kind": "stringLiteral" - } - ], - "contextSpan": { - "start": 416, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 421, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 416, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 443, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 429, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // <|type [|Z1|] = 1;|> + // export /*FIND ALL REFS*/type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // export type { z2, z3 as z4 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type", + "name": "type Z1 = 1", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Z1", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } ] - } -] + } + ] -undefined -undefined +// === findAllReferences === // === /main.ts === // // import ... = ... // import A = require("./a"); @@ -2932,213 +2821,217 @@ undefined // export type { Z1 }; // type Z2 = 2; // type Z3 = 3; -// export type { z2, z3 /*FIND ALL REFS*/as [|z4|] }; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main.ts", - "kind": "alias", - "name": "export z4", - "textSpan": { - "start": 499, - "length": 2 - }, - "displayParts": [ - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "z4", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 475, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 499, - "length": 2 - }, - "fileName": "/main.ts", - "contextSpan": { - "start": 475, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } +// /*FIND ALL REFS*/export type { z2, z3 as z4 }; + + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// import type { e1, e2 as e3 } from "./e"; +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// export type { j1, j2 as j3 } from "./j"; +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// export /*FIND ALL REFS*/type { z2, z3 as z4 }; + + + +// === findAllReferences === +// === /main.ts === +// // import ... = ... +// import A = require("./a"); +// namespace N { } +// import N2 = N; +// +// // import ... from ... +// import type B from "./b"; +// import type * as C from "./c"; +// import type { D } from "./d"; +// import type { e1, e2 as e3 } from "./e"; +// +// // import "module" +// import "./f"; +// +// // export ... from ... +// export type * from "./g"; +// export type * as H from "./h"; +// export type { I } from "./i"; +// export type { j1, j2 as j3 } from "./j"; +// type Z1 = 1; +// export type { Z1 }; +// type Z2 = 2; +// type Z3 = 3; +// <|export type { z2, z3 /*FIND ALL REFS*/as [|{| isWriteAccess: true, isDefinition: true |}z4|] };|> + + // === Definitions === + // === /main.ts === + // // import ... = ... + // import A = require("./a"); + // namespace N { } + // import N2 = N; + // + // // import ... from ... + // import type B from "./b"; + // import type * as C from "./c"; + // import type { D } from "./d"; + // import type { e1, e2 as e3 } from "./e"; + // + // // import "module" + // import "./f"; + // + // // export ... from ... + // export type * from "./g"; + // export type * as H from "./h"; + // export type { I } from "./i"; + // export type { j1, j2 as j3 } from "./j"; + // type Z1 = 1; + // export type { Z1 }; + // type Z2 = 2; + // type Z3 = 3; + // <|export type { z2, z3 /*FIND ALL REFS*/as [|z4|] };|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "export z4", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "z4", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main2.ts === -// const [|x|] = {}; -// /*FIND ALL REFS*/export = [|x|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main2.ts", - "kind": "const", - "name": "const x: {}", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/main2.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/main2.ts", - "contextSpan": { - "start": 14, - "length": 11 - }, - "isWriteAccess": false - } +// <|const [|{| isWriteAccess: true |}x|] = {};|> +// /*FIND ALL REFS*/<|export = [|x|];|> + + // === Definitions === + // === /main2.ts === + // <|const [|x|] = {};|> + // /*FIND ALL REFS*/export = x; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const x: {}", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /main3.ts === -// const [|y|] = {}; -// /*FIND ALL REFS*/export default [|y|]; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/main3.ts", - "kind": "const", - "name": "const y: {}", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "const", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "y", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/main3.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 29, - "length": 1 - }, - "fileName": "/main3.ts", - "contextSpan": { - "start": 14, - "length": 17 - }, - "isWriteAccess": false - } +// <|const [|{| isWriteAccess: true |}y|] = {};|> +// /*FIND ALL REFS*/<|export default [|y|];|> + + // === Definitions === + // === /main3.ts === + // <|const [|y|] = {};|> + // /*FIND ALL REFS*/export default y; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "const", + "name": "const y: {}", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "y", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStatic.baseline.jsonc b/tests/baselines/reference/referencesForStatic.baseline.jsonc index c93f289148405..1712601bbb300 100644 --- a/tests/baselines/reference/referencesForStatic.baseline.jsonc +++ b/tests/baselines/reference/referencesForStatic.baseline.jsonc @@ -1,14 +1,12 @@ -// === /tests/cases/fourslash/referencesOnStatic_2.ts === -// var q = foo.[|n|]; - +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// /*FIND ALL REFS*/static [|n|] = ''; +// /*FIND ALL REFS*/<|static [|{| isWriteAccess: true, isDefinition: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -18,7 +16,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -26,157 +24,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // /*FIND ALL REFS*/<|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static /*FIND ALL REFS*/[|n|] = ''; +// <|static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -186,7 +125,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -194,157 +133,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static /*FIND ALL REFS*/[|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo./*FIND ALL REFS*/[|n|] = "'"; +// foo./*FIND ALL REFS*/[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -354,7 +234,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -362,149 +242,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo./*FIND ALL REFS*/n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo./*FIND ALL REFS*/[|n|]) { // var x = foo.[|n|]; // } @@ -514,7 +343,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -522,149 +351,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo./*FIND ALL REFS*/n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo./*FIND ALL REFS*/[|n|]; // } @@ -674,7 +452,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -682,149 +460,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo./*FIND ALL REFS*/n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -834,7 +561,7 @@ // class foo2 { // private x = foo./*FIND ALL REFS*/[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -842,149 +569,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo./*FIND ALL REFS*/n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -994,7 +670,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo./*FIND ALL REFS*/[|n|] = x; +// foo./*FIND ALL REFS*/[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -1002,149 +678,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/referencesOnStatic_2.ts === // var q = foo.[|n|]; + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo./*FIND ALL REFS*/n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -1154,7 +779,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -1162,149 +787,98 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } +// === /tests/cases/fourslash/referencesOnStatic_2.ts === +// var q = foo.[|n|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo./*FIND ALL REFS*/n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] + } + ] -// === /tests/cases/fourslash/referencesOnStatic_2.ts === -// var q = foo./*FIND ALL REFS*/[|n|]; + +// === findAllReferences === // === /tests/cases/fourslash/referencesOnStatic_1.ts === // var n = 43; // // class foo { -// static [|n|] = ''; +// <|static [|{| isWriteAccess: true |}n|] = '';|> // // public bar() { -// foo.[|n|] = "'"; +// foo.[|{| isWriteAccess: true |}n|] = "'"; // if(foo.[|n|]) { // var x = foo.[|n|]; // } @@ -1314,7 +888,7 @@ // class foo2 { // private x = foo.[|n|]; // constructor() { -// foo.[|n|] = x; +// foo.[|{| isWriteAccess: true |}n|] = x; // } // // function b(n) { @@ -1322,134 +896,83 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "kind": "property", - "name": "(property) foo.n: string", - "textSpan": { - "start": 36, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "n", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 29, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "contextSpan": { - "start": 29, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 76, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 100, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 184, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 219, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 12, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesOnStatic_2.ts", - "isWriteAccess": false - } +// === /tests/cases/fourslash/referencesOnStatic_2.ts === +// var q = foo./*FIND ALL REFS*/[|n|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesOnStatic_1.ts === + // var n = 43; + // + // class foo { + // <|static [|n|] = '';|> + // + // public bar() { + // foo.n = "'"; + // if(foo.n) { + // var x = foo.n; + // } + // } + // } + // + // class foo2 { + // private x = foo.n; + // constructor() { + // foo.n = x; + // } + // + // function b(n) { + // n = foo.n; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) foo.n: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "n", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStaticsAndMembersWithSameNames.baseline.jsonc b/tests/baselines/reference/referencesForStaticsAndMembersWithSameNames.baseline.jsonc index c5c1591745c6b..1db39f7473e60 100644 --- a/tests/baselines/reference/referencesForStaticsAndMembersWithSameNames.baseline.jsonc +++ b/tests/baselines/reference/referencesForStaticsAndMembersWithSameNames.baseline.jsonc @@ -1,8 +1,9 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { // export class Foo { -// /*FIND ALL REFS*/[|bar|]: Foo; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}bar|]: Foo;|> // static bar: Foo; // // public foo(): void { @@ -24,106 +25,102 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "property", - "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", - "textSpan": { - "start": 74, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 74, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 74, - "length": 9 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 278, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // /*FIND ALL REFS*/<|[|bar|]: Foo;|> + // static bar: Foo; + // + // public foo(): void { + // } + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { // export class Foo { // bar: Foo; -// /*FIND ALL REFS*/static [|bar|]: Foo; +// /*FIND ALL REFS*/<|static [|{| isDefinition: true |}bar|]: Foo;|> // // public foo(): void { // } @@ -144,106 +141,102 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "property", - "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", - "textSpan": { - "start": 94, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 87, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 94, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 87, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // /*FIND ALL REFS*/<|static [|bar|]: Foo;|> + // + // public foo(): void { + // } + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { // export class Foo { // bar: Foo; -// static /*FIND ALL REFS*/[|bar|]: Foo; +// <|static /*FIND ALL REFS*/[|{| isDefinition: true |}bar|]: Foo;|> // // public foo(): void { // } @@ -264,100 +257,96 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "property", - "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", - "textSpan": { - "start": 94, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 87, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 94, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 87, - "length": 16 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // <|static /*FIND ALL REFS*/[|bar|]: Foo;|> + // + // public foo(): void { + // } + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -365,8 +354,8 @@ // bar: Foo; // static bar: Foo; // -// /*FIND ALL REFS*/public [|foo|](): void { -// } +// /*FIND ALL REFS*/<|public [|{| isWriteAccess: true, isDefinition: true |}foo|](): void { +// }|> // public static foo(): void { // } // } @@ -384,108 +373,104 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 115, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 108, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 267, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // /*FIND ALL REFS*/<|public [|foo|](): void { + // }|> + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -493,8 +478,8 @@ // bar: Foo; // static bar: Foo; // -// public /*FIND ALL REFS*/[|foo|](): void { -// } +// <|public /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](): void { +// }|> // public static foo(): void { // } // } @@ -512,108 +497,104 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 115, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 108, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 267, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // <|public /*FIND ALL REFS*/[|foo|](): void { + // }|> + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -623,8 +604,8 @@ // // public foo(): void { // } -// /*FIND ALL REFS*/public static [|foo|](): void { -// } +// /*FIND ALL REFS*/<|public static [|{| isWriteAccess: true, isDefinition: true |}foo|](): void { +// }|> // } // } // @@ -640,108 +621,104 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 151, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 137, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 137, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 333, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // public foo(): void { + // } + // /*FIND ALL REFS*/<|public static [|foo|](): void { + // }|> + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -751,8 +728,8 @@ // // public foo(): void { // } -// public static /*FIND ALL REFS*/[|foo|](): void { -// } +// <|public static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}foo|](): void { +// }|> // } // } // @@ -768,108 +745,104 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 151, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 137, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 137, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 333, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // public foo(): void { + // } + // <|public static /*FIND ALL REFS*/[|foo|](): void { + // }|> + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -877,8 +850,8 @@ // bar: Foo; // static bar: Foo; // -// public [|foo|](): void { -// } +// <|public [|{| isWriteAccess: true |}foo|](): void { +// }|> // public static foo(): void { // } // } @@ -896,111 +869,109 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 115, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 115, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 108, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 267, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // <|public [|foo|](): void { + // }|> + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x./*FIND ALL REFS*/foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { // export class Foo { -// [|bar|]: Foo; +// <|[|bar|]: Foo;|> // static bar: Foo; // // public foo(): void { @@ -1022,98 +993,96 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "property", - "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", - "textSpan": { - "start": 74, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 74, - "length": 9 - } - }, - "references": [ - { - "textSpan": { - "start": 74, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 74, - "length": 9 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 278, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // <|[|bar|]: Foo;|> + // static bar: Foo; + // + // public foo(): void { + // } + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x./*FIND ALL REFS*/bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { @@ -1123,8 +1092,8 @@ // // public foo(): void { // } -// public static [|foo|](): void { -// } +// <|public static [|{| isWriteAccess: true |}foo|](): void { +// }|> // } // } // @@ -1140,112 +1109,110 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "method", - "name": "(method) MixedStaticsClassTest.Foo.foo(): void", - "textSpan": { - "start": 151, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 137, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 151, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 137, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 333, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // static bar: Foo; + // + // public foo(): void { + // } + // <|public static [|foo|](): void { + // }|> + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo./*FIND ALL REFS*/foo(); + // MixedStaticsClassTest.Foo.bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) MixedStaticsClassTest.Foo.foo(): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === // module FindRef4 { // module MixedStaticsClassTest { // export class Foo { // bar: Foo; -// static [|bar|]: Foo; +// <|static [|bar|]: Foo;|> // // public foo(): void { // } @@ -1266,94 +1233,89 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "kind": "property", - "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", - "textSpan": { - "start": 94, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MixedStaticsClassTest", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - } - ], - "contextSpan": { - "start": 87, - "length": 16 - } - }, - "references": [ - { - "textSpan": { - "start": 94, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "contextSpan": { - "start": 87, - "length": 16 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStaticsAndMembersWithSameNames.ts === + // module FindRef4 { + // module MixedStaticsClassTest { + // export class Foo { + // bar: Foo; + // <|static [|bar|]: Foo;|> + // + // public foo(): void { + // } + // public static foo(): void { + // } + // } + // } + // + // function test() { + // // instance function + // var x = new MixedStaticsClassTest.Foo(); + // x.foo(); + // x.bar; + // + // // static function + // MixedStaticsClassTest.Foo.foo(); + // MixedStaticsClassTest.Foo./*FIND ALL REFS*/bar; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) MixedStaticsClassTest.Foo.bar: Foo", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MixedStaticsClassTest", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames.baseline.jsonc index d8721ea9b4038..3ce7bc14b1340 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames.baseline.jsonc @@ -1,135 +1,79 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts === // class Foo { -// public "/*FIND ALL REFS*/[|ss|]": any; +// <|public "/*FIND ALL REFS*/[|{| isDefinition: true |}ss|]": any;|> // } // // var x: Foo; // x.[|ss|]; // x["[|ss|]"]; -// x = { "[|ss|]": 0 }; -// x = { [|ss|]: 0 }; +// x = { <|"[|{| isWriteAccess: true |}ss|]": 0|> }; +// x = { <|[|{| isWriteAccess: true |}ss|]: 0|> }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "kind": "property", - "name": "(property) Foo[\"ss\"]: any", - "textSpan": { - "start": 24, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"ss\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 24, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "contextSpan": { - "start": 16, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 51, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 58, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 71, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "contextSpan": { - "start": 70, - "length": 7 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 87, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts", - "contextSpan": { - "start": 87, - "length": 5 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames.ts === + // class Foo { + // <|public "/*FIND ALL REFS*/[|ss|]": any;|> + // } + // + // var x: Foo; + // x.ss; + // x["ss"]; + // x = { "ss": 0 }; + // x = { ss: 0 }; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo[\"ss\"]: any", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"ss\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames2.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames2.baseline.jsonc index cab632f02cc73..cb84d0363179d 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames2.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames2.baseline.jsonc @@ -1,315 +1,249 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === // class Foo { -// /*FIND ALL REFS*/"[|blah|]"() { return 0; } +// /*FIND ALL REFS*/<|"[|{| isWriteAccess: true, isDefinition: true |}blah|]"() { return 0; }|> // } // // var x: Foo; // x.[|blah|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "kind": "method", - "name": "(method) Foo[\"blah\"](): number", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"blah\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "contextSpan": { - "start": 16, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 56, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === + // class Foo { + // /*FIND ALL REFS*/<|"[|blah|]"() { return 0; }|> + // } + // + // var x: Foo; + // x.blah; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo[\"blah\"](): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"blah\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === // class Foo { -// "/*FIND ALL REFS*/[|blah|]"() { return 0; } +// <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}blah|]"() { return 0; }|> // } // // var x: Foo; // x.[|blah|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "kind": "method", - "name": "(method) Foo[\"blah\"](): number", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"blah\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "contextSpan": { - "start": 16, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 56, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === + // class Foo { + // <|"/*FIND ALL REFS*/[|blah|]"() { return 0; }|> + // } + // + // var x: Foo; + // x.blah; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo[\"blah\"](): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"blah\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === // class Foo { -// "[|blah|]"() { return 0; } +// <|"[|{| isWriteAccess: true |}blah|]"() { return 0; }|> // } // // var x: Foo; // x./*FIND ALL REFS*/[|blah|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "kind": "method", - "name": "(method) Foo[\"blah\"](): number", - "textSpan": { - "start": 17, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"blah\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 16, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 17, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "contextSpan": { - "start": 16, - "length": 22 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 56, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames2.ts === + // class Foo { + // <|"[|blah|]"() { return 0; }|> + // } + // + // var x: Foo; + // x./*FIND ALL REFS*/blah; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) Foo[\"blah\"](): number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"blah\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames3.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames3.baseline.jsonc index 908f553f2afff..17b97dce89a8c 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames3.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames3.baseline.jsonc @@ -1,556 +1,387 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === // class Foo2 { -// /*FIND ALL REFS*/get "[|42|]"() { return 0; } -// set [|42|](n) { } +// /*FIND ALL REFS*/<|get "[|{| isWriteAccess: true, isDefinition: true |}42|]"() { return 0; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}42|](n) { }|> // } // // var y: Foo2; // y[[|42|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "kind": "property", - "name": "(property) Foo2[\"42\"]: number", - "textSpan": { - "start": 22, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo2", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 17, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 46, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === + // class Foo2 { + // /*FIND ALL REFS*/<|get "[|42|]"() { return 0; }|> + // set 42(n) { } + // } + // + // var y: Foo2; + // y[42]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo2[\"42\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo2", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === // class Foo2 { -// get "/*FIND ALL REFS*/[|42|]"() { return 0; } -// set [|42|](n) { } +// <|get "/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}42|]"() { return 0; }|> +// <|set [|{| isWriteAccess: true, isDefinition: true |}42|](n) { }|> // } // // var y: Foo2; // y[[|42|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "kind": "property", - "name": "(property) Foo2[\"42\"]: number", - "textSpan": { - "start": 22, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo2", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 17, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 46, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === + // class Foo2 { + // <|get "/*FIND ALL REFS*/[|42|]"() { return 0; }|> + // set 42(n) { } + // } + // + // var y: Foo2; + // y[42]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo2[\"42\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo2", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === // class Foo2 { -// get "[|42|]"() { return 0; } -// /*FIND ALL REFS*/set [|42|](n) { } +// <|get "[|{| isWriteAccess: true, isDefinition: true |}42|]"() { return 0; }|> +// /*FIND ALL REFS*/<|set [|{| isWriteAccess: true, isDefinition: true |}42|](n) { }|> // } // // var y: Foo2; // y[[|42|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "kind": "property", - "name": "(property) Foo2[\"42\"]: number", - "textSpan": { - "start": 22, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo2", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 17, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 46, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === + // class Foo2 { + // <|get "[|42|]"() { return 0; }|> + // /*FIND ALL REFS*/set 42(n) { } + // } + // + // var y: Foo2; + // y[42]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo2[\"42\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo2", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === // class Foo2 { -// get "[|42|]"() { return 0; } -// set /*FIND ALL REFS*/[|42|](n) { } +// <|get "[|{| isWriteAccess: true, isDefinition: true |}42|]"() { return 0; }|> +// <|set /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}42|](n) { }|> // } // // var y: Foo2; // y[[|42|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "kind": "property", - "name": "(property) Foo2[\"42\"]: number", - "textSpan": { - "start": 22, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo2", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 17, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 46, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === + // class Foo2 { + // <|get "[|42|]"() { return 0; }|> + // set /*FIND ALL REFS*/42(n) { } + // } + // + // var y: Foo2; + // y[42]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo2[\"42\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo2", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === // class Foo2 { -// get "[|42|]"() { return 0; } -// set [|42|](n) { } +// <|get "[|{| isWriteAccess: true |}42|]"() { return 0; }|> +// <|set [|{| isWriteAccess: true |}42|](n) { }|> // } // // var y: Foo2; // y[/*FIND ALL REFS*/[|42|]]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "kind": "property", - "name": "(property) Foo2[\"42\"]: number", - "textSpan": { - "start": 22, - "length": 2 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Foo2", - "kind": "className" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "\"42\"", - "kind": "stringLiteral" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 17, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 22, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 17, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 50, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "contextSpan": { - "start": 46, - "length": 13 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 78, - "length": 2 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames3.ts === + // class Foo2 { + // <|get "[|42|]"() { return 0; }|> + // set 42(n) { } + // } + // + // var y: Foo2; + // y[/*FIND ALL REFS*/42]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Foo2[\"42\"]: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo2", + "kind": "className" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"42\"", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames4.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames4.baseline.jsonc index e11f1efe53e0c..9d8ce8e3be650 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames4.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames4.baseline.jsonc @@ -1,180 +1,113 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts === -// var x = { "/*FIND ALL REFS*/[|someProperty|]": 0 } +// var x = { <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}someProperty|]": 0|> } // x["[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// x.[|{| isWriteAccess: true |}someProperty|] = 5; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts === + // var x = { <|"/*FIND ALL REFS*/[|someProperty|]": 0|> } + // x["someProperty"] = 3; + // x.someProperty = 5; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts === -// var x = { "[|someProperty|]": 0 } +// var x = { <|"[|{| isWriteAccess: true |}someProperty|]": 0|> } // x[/*FIND ALL REFS*/"[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// x.[|{| isWriteAccess: true |}someProperty|] = 5; + + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts === + // var x = { <|"[|someProperty|]": 0|> } + // x[/*FIND ALL REFS*/"someProperty"] = 3; + // x.someProperty = 5; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames4.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames5.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames5.baseline.jsonc index b8631b9e0ddb1..fe2f4263221e7 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames5.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames5.baseline.jsonc @@ -1,180 +1,113 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts === -// var x = { "/*FIND ALL REFS*/[|someProperty|]": 0 } +// var x = { <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}someProperty|]": 0|> } // x["[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// x.[|{| isWriteAccess: true |}someProperty|] = 5; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts === + // var x = { <|"/*FIND ALL REFS*/[|someProperty|]": 0|> } + // x["someProperty"] = 3; + // x.someProperty = 5; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts === -// var x = { "[|someProperty|]": 0 } +// var x = { <|"[|{| isWriteAccess: true |}someProperty|]": 0|> } // x["/*FIND ALL REFS*/[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// x.[|{| isWriteAccess: true |}someProperty|] = 5; + + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts === + // var x = { <|"[|someProperty|]": 0|> } + // x["/*FIND ALL REFS*/someProperty"] = 3; + // x.someProperty = 5; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames5.ts", - "isWriteAccess": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames6.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames6.baseline.jsonc index ec6c1b977cfd8..24bdcce28d780 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames6.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames6.baseline.jsonc @@ -1,173 +1,129 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts === // const x = function () { return 111111; } -// x./*FIND ALL REFS*/[|someProperty|] = 5; -// x["[|someProperty|]"] = 3; +// x./*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}someProperty|] = 5; +// x["[|{| isWriteAccess: true, isDefinition: true |}someProperty|]"] = 3; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "kind": "property", - "name": "(property) x.someProperty: number", - "textSpan": { - "start": 43, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "someProperty", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 41, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 64, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts === + // const x = function () { return 111111; } + // <|x./*FIND ALL REFS*/[|someProperty|]|> = 5; + // x["someProperty"] = 3; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x.someProperty: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "someProperty", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts === // const x = function () { return 111111; } -// x.[|someProperty|] = 5; -// x["/*FIND ALL REFS*/[|someProperty|]"] = 3; +// x.[|{| isWriteAccess: true, isDefinition: true |}someProperty|] = 5; +// x["/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}someProperty|]"] = 3; + + // === Definitions === + // === /tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts === + // const x = function () { return 111111; } + // <|x.[|someProperty|]|> = 5; + // x["/*FIND ALL REFS*/someProperty"] = 3; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "kind": "property", - "name": "(property) x.someProperty: number", - "textSpan": { - "start": 43, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "someProperty", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 41, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 43, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 64, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/referencesForStringLiteralPropertyNames6.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) x.someProperty: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "someProperty", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForStringLiteralPropertyNames7.baseline.jsonc b/tests/baselines/reference/referencesForStringLiteralPropertyNames7.baseline.jsonc index e335f25838ee5..1477b2e45ee08 100644 --- a/tests/baselines/reference/referencesForStringLiteralPropertyNames7.baseline.jsonc +++ b/tests/baselines/reference/referencesForStringLiteralPropertyNames7.baseline.jsonc @@ -1,199 +1,113 @@ +// === findAllReferences === // === /tests/cases/fourslash/foo.js === -// var x = { "/*FIND ALL REFS*/[|someProperty|]": 0 } -// x["[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// var x = { <|"/*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}someProperty|]": 0|> } +// <|x["[|{| isWriteAccess: true |}someProperty|]"] = 3;|> +// <|x.[|{| isWriteAccess: true |}someProperty|] = 5;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 30, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 53, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // var x = { <|"/*FIND ALL REFS*/[|someProperty|]": 0|> } + // x["someProperty"] = 3; + // x.someProperty = 5; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/foo.js === -// var x = { "[|someProperty|]": 0 } -// x["/*FIND ALL REFS*/[|someProperty|]"] = 3; -// x.[|someProperty|] = 5; +// var x = { <|"[|{| isWriteAccess: true, isDefinition: true |}someProperty|]": 0|> } +// <|x["/*FIND ALL REFS*/[|{| isWriteAccess: true |}someProperty|]"] = 3;|> +// <|x.[|{| isWriteAccess: true |}someProperty|] = 5;|> + + // === Definitions === + // === /tests/cases/fourslash/foo.js === + // var x = { <|"[|someProperty|]": 0|> } + // x["/*FIND ALL REFS*/someProperty"] = 3; + // x.someProperty = 5; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/foo.js", - "kind": "property", - "name": "(property) \"someProperty\": number", - "textSpan": { - "start": 11, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"someProperty\"", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 10, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 10, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 30, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 55, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/foo.js", - "contextSpan": { - "start": 53, - "length": 19 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) \"someProperty\": number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"someProperty\"", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc b/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc index 6a7646336a23c..943c57719306e 100644 --- a/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc @@ -1,5 +1,6 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === -// interface [|I|] {} +// <|interface [|{| isWriteAccess: true |}I|] {}|> // function f() {} // type A1 = T extends U ? 1 : 0; // type A2 = T extends infer U ? 1 : 0; @@ -7,400 +8,343 @@ // type A4 = keyof T; // type A5 = readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "interface", - "name": "interface I", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "I", - "kind": "interfaceName" - } - ], - "contextSpan": { - "start": 0, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "contextSpan": { - "start": 0, - "length": 14 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 36, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // <|interface [|I|] {}|> + // function f() {} + // type A1 = T extends U ? 1 : 0; + // type A2 = T extends infer U ? 1 : 0; + // type A3 = { [P in keyof T]: 1 }; + // type A4 = keyof T; + // type A5 = readonly T[]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "interface", + "name": "interface I", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "I", + "kind": "interfaceName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === // interface I {} // function f() {} -// type A1 = T /*FIND ALL REFS*/extends [|U|] ? 1 : 0; +// type A1 = T /*FIND ALL REFS*/extends [|U|] ? 1 : 0; // type A2 = T extends infer U ? 1 : 0; // type A3 = { [P in keyof T]: 1 }; // type A4 = keyof T; // type A5 = readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "type parameter", - "name": "(type parameter) U in type A1", - "textSpan": { - "start": 55, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A1", - "kind": "aliasName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 55, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 70, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // interface I {} + // function f() {} + // type A1 = T /*FIND ALL REFS*/extends U ? 1 : 0; + // type A2 = T extends infer U ? 1 : 0; + // type A3 = { [P in keyof T]: 1 }; + // type A4 = keyof T; + // type A5 = readonly T[]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) U in type A1", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A1", + "kind": "aliasName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === // interface I {} // function f() {} // type A1 = T extends U ? 1 : 0; -// type A2 = T extends /*FIND ALL REFS*/infer [|U|] ? 1 : 0; +// type A2 = T extends /*FIND ALL REFS*/infer [|{| isWriteAccess: true, isDefinition: true |}U|] ? 1 : 0; // type A3 = { [P in keyof T]: 1 }; // type A4 = keyof T; // type A5 = readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "type parameter", - "name": "(type parameter) U", - "textSpan": { - "start": 110, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "U", - "kind": "typeParameterName" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 110, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // interface I {} + // function f() {} + // type A1 = T extends U ? 1 : 0; + // type A2 = T extends /*FIND ALL REFS*/infer [|U|] ? 1 : 0; + // type A3 = { [P in keyof T]: 1 }; + // type A4 = keyof T; + // type A5 = readonly T[]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) U", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "U", + "kind": "typeParameterName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === // interface I {} // function f() {} // type A1 = T extends U ? 1 : 0; // type A2 = T extends infer U ? 1 : 0; -// type A3 = { [[|P|] /*FIND ALL REFS*/in keyof T]: 1 }; +// type A3 = { [<|[|{| isWriteAccess: true, isDefinition: true |}P|] /*FIND ALL REFS*/in keyof T|>]: 1 }; // type A4 = keyof T; // type A5 = readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "type parameter", - "name": "(type parameter) P", - "textSpan": { - "start": 137, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "typeParameterName" - } - ], - "contextSpan": { - "start": 137, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 137, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "contextSpan": { - "start": 137, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // interface I {} + // function f() {} + // type A1 = T extends U ? 1 : 0; + // type A2 = T extends infer U ? 1 : 0; + // type A3 = { [<|[|P|] /*FIND ALL REFS*/in keyof T|>]: 1 }; + // type A4 = keyof T; + // type A5 = readonly T[]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) P", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "typeParameterName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === // interface I {} // function f() {} // type A1 = T extends U ? 1 : 0; // type A2 = T extends infer U ? 1 : 0; // type A3 = { [P in keyof T]: 1 }; -// type A4<[|T|]> = /*FIND ALL REFS*/keyof [|T|]; +// type A4<[|{| isWriteAccess: true |}T|]> = /*FIND ALL REFS*/keyof [|T|]; // type A5 = readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "type parameter", - "name": "(type parameter) T in type A4", - "textSpan": { - "start": 165, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A4", - "kind": "aliasName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 165, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // interface I {} + // function f() {} + // type A1 = T extends U ? 1 : 0; + // type A2 = T extends infer U ? 1 : 0; + // type A3 = { [P in keyof T]: 1 }; + // type A4<[|T|]> = /*FIND ALL REFS*/keyof T; + // type A5 = readonly T[]; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in type A4", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A4", + "kind": "aliasName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForTypeKeywords.ts === // interface I {} // function f() {} @@ -408,96 +352,82 @@ // type A2 = T extends infer U ? 1 : 0; // type A3 = { [P in keyof T]: 1 }; // type A4 = keyof T; -// type A5<[|T|]> = /*FIND ALL REFS*/readonly [|T|][]; +// type A5<[|{| isWriteAccess: true |}T|]> = /*FIND ALL REFS*/readonly [|T|][]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForTypeKeywords.ts === + // interface I {} + // function f() {} + // type A1 = T extends U ? 1 : 0; + // type A2 = T extends infer U ? 1 : 0; + // type A3 = { [P in keyof T]: 1 }; + // type A4 = keyof T; + // type A5<[|T|]> = /*FIND ALL REFS*/readonly T[]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "kind": "type parameter", - "name": "(type parameter) T in type A5", - "textSpan": { - "start": 187, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "type parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "in", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "type", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A5", - "kind": "aliasName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 187, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 201, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "type parameter", + "name": "(type parameter) T in type A5", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "type parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "in", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A5", + "kind": "aliasName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesForUnionProperties.baseline.jsonc b/tests/baselines/reference/referencesForUnionProperties.baseline.jsonc index 55a76ee00e02b..dd18cddc9c243 100644 --- a/tests/baselines/reference/referencesForUnionProperties.baseline.jsonc +++ b/tests/baselines/reference/referencesForUnionProperties.baseline.jsonc @@ -1,6 +1,7 @@ +// === findAllReferences === // === /tests/cases/fourslash/referencesForUnionProperties.ts === // interface One { -// common: { /*FIND ALL REFS*/[|a|]: number; }; +// common: { /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}a|]: number;|> }; // } // // interface Base { @@ -19,167 +20,149 @@ // // var x : One | Two; // -// x.common.[|a|]; +// x.common.[|{| defId: 1 |}a|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) a: number", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 30, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/referencesForUnionProperties.ts === + // interface One { + // common: { /*FIND ALL REFS*/<|[|{| defId: 0 |}<|[|{| defId: 1 |}a|]|]: number;|>|> }; + // } + // + // interface Base { + // a: string; + // b: string; + // } + // + // interface HasAOrB extends Base { + // a: string; + // b: string; + // } + // + // interface Two { + // common: HasAOrB; + // } + // + // var x : One | Two; + // + // x.common.a; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) a: string | number", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 232, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForUnionProperties.ts === // interface One { // common: { a: number; }; // } // // interface Base { -// /*FIND ALL REFS*/[|a|]: string; +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}a|]: string;|> // b: string; // } // // interface HasAOrB extends Base { -// [|a|]: string; +// <|[|{| defId: 1 |}a|]: string;|> // b: string; // } // @@ -189,249 +172,206 @@ // // var x : One | Two; // -// x.common.[|a|]; +// x.common.[|{| defId: 2 |}a|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForUnionProperties.ts === + // interface One { + // common: { <|[|{| defId: 2 |}a|]: number;|> }; + // } + // + // interface Base { + // /*FIND ALL REFS*/<|[|{| defId: 0 |}a|]: string;|> + // b: string; + // } + // + // interface HasAOrB extends Base { + // <|[|{| defId: 1 |}a|]: string;|> + // b: string; + // } + // + // interface Two { + // common: HasAOrB; + // } + // + // var x : One | Two; + // + // x.common.a; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) Base.a: string", - "textSpan": { - "start": 68, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 68, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 68, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 68, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) HasAOrB.a: string", - "textSpan": { - "start": 134, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "HasAOrB", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 134, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 134, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 134, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) HasAOrB.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "HasAOrB", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) a: string | number", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 232, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/referencesForUnionProperties.ts === // interface One { -// common: { [|a|]: number; }; +// common: { <|[|{| defId: 0 |}a|]: number;|> }; // } // // interface Base { -// [|a|]: string; +// <|[|{| defId: 1 |}a|]: string;|> // b: string; // } // // interface HasAOrB extends Base { -// [|a|]: string; +// <|[|{| defId: 2 |}a|]: string;|> // b: string; // } // @@ -441,295 +381,228 @@ // // var x : One | Two; // -// x.common./*FIND ALL REFS*/[|a|]; +// x.common./*FIND ALL REFS*/[|{| defId: 3 |}a|]; + + // === Definitions === + // === /tests/cases/fourslash/referencesForUnionProperties.ts === + // interface One { + // common: { <|[|{| defId: 0 |}<|[|{| defId: 3 |}a|]|]: number;|>|> }; + // } + // + // interface Base { + // <|[|{| defId: 1 |}a|]: string;|> + // b: string; + // } + // + // interface HasAOrB extends Base { + // <|[|{| defId: 2 |}a|]: string;|> + // b: string; + // } + // + // interface Two { + // common: HasAOrB; + // } + // + // var x : One | Two; + // + // x.common./*FIND ALL REFS*/a; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) a: number", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 30, - "length": 10 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) Base.a: string", - "textSpan": { - "start": 68, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Base", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 68, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 68, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 68, - "length": 10 - }, - "isWriteAccess": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) Base.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) HasAOrB.a: string", - "textSpan": { - "start": 134, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "HasAOrB", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 134, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 134, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "contextSpan": { - "start": 134, - "length": 10 - }, - "isWriteAccess": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) HasAOrB.a: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "HasAOrB", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "kind": "property", - "name": "(property) a: string | number", - "textSpan": { - "start": 30, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 30, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 232, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/referencesForUnionProperties.ts", - "isWriteAccess": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) a: string | number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesInComment.baseline.jsonc b/tests/baselines/reference/referencesInComment.baseline.jsonc index 795175276bb60..073d98b385dde 100644 --- a/tests/baselines/reference/referencesInComment.baseline.jsonc +++ b/tests/baselines/reference/referencesInComment.baseline.jsonc @@ -1,7 +1,33 @@ -undefined +// === findAllReferences === +// === /tests/cases/fourslash/referencesInComment.ts === +// // References to /*FIND ALL REFS*/foo or bar +// /* in comments should not find foo or bar */ +// class foo { } +// var bar = 0; -undefined -undefined -undefined \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/referencesInComment.ts === +// // References to foo or b/*FIND ALL REFS*/ar +// /* in comments should not find foo or bar */ +// class foo { } +// var bar = 0; + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesInComment.ts === +// // References to foo or bar +// /* in comments should not find fo/*FIND ALL REFS*/o or bar */ +// class foo { } +// var bar = 0; + + + +// === findAllReferences === +// === /tests/cases/fourslash/referencesInComment.ts === +// // References to foo or bar +// /* in comments should not find foo or bar/*FIND ALL REFS*/ */ +// class foo { } +// var bar = 0; \ No newline at end of file diff --git a/tests/baselines/reference/referencesInConfiguredProject.baseline.jsonc b/tests/baselines/reference/referencesInConfiguredProject.baseline.jsonc index cb190814ae224..229148650c7a9 100644 --- a/tests/baselines/reference/referencesInConfiguredProject.baseline.jsonc +++ b/tests/baselines/reference/referencesInConfiguredProject.baseline.jsonc @@ -1,63 +1,38 @@ +// === findAllReferences === // === /referencesForGlobals_1.ts === -// class [|globalClass|] { +// <|class [|{| isWriteAccess: true |}globalClass|] { // public f() { } -// } +// }|> // === /referencesForGlobals_2.ts === // var c = /*FIND ALL REFS*/[|globalClass|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/referencesForGlobals_1.ts", - "kind": "class", - "name": "class globalClass", - "textSpan": { - "start": 6, - "length": 11 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 40 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 11 - }, - "fileName": "/referencesForGlobals_1.ts", - "contextSpan": { - "start": 0, - "length": 40 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 8, - "length": 11 - }, - "fileName": "/referencesForGlobals_2.ts", - "isWriteAccess": false - } + // === Definitions === + // === /referencesForGlobals_1.ts === + // <|class [|globalClass|] { + // public f() { } + // }|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class globalClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesInEmptyFile.baseline.jsonc b/tests/baselines/reference/referencesInEmptyFile.baseline.jsonc index 0637a088a01e8..89905a0f38871 100644 --- a/tests/baselines/reference/referencesInEmptyFile.baseline.jsonc +++ b/tests/baselines/reference/referencesInEmptyFile.baseline.jsonc @@ -1 +1,3 @@ -[] \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/server/referencesInEmptyFile.ts === +// /*FIND ALL REFS*/ \ No newline at end of file diff --git a/tests/baselines/reference/referencesInEmptyFileWithMultipleProjects.baseline.jsonc b/tests/baselines/reference/referencesInEmptyFileWithMultipleProjects.baseline.jsonc index 91fe4e8e0515e..135cf489d16a6 100644 --- a/tests/baselines/reference/referencesInEmptyFileWithMultipleProjects.baseline.jsonc +++ b/tests/baselines/reference/referencesInEmptyFileWithMultipleProjects.baseline.jsonc @@ -1,3 +1,10 @@ -[] +// === findAllReferences === +// === /a/a.ts === +// /// +// /*FIND ALL REFS*/; -[] \ No newline at end of file + + +// === findAllReferences === +// === /b/b.ts === +// /*FIND ALL REFS*/; \ No newline at end of file diff --git a/tests/baselines/reference/referencesInStringLiteralValueWithMultipleProjects.baseline.jsonc b/tests/baselines/reference/referencesInStringLiteralValueWithMultipleProjects.baseline.jsonc index d0bd5fdd355ef..7017fdfbf778f 100644 --- a/tests/baselines/reference/referencesInStringLiteralValueWithMultipleProjects.baseline.jsonc +++ b/tests/baselines/reference/referencesInStringLiteralValueWithMultipleProjects.baseline.jsonc @@ -1,24 +1,31 @@ -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/a/a.ts", - "kind": "var", - "name": "hello", - "textSpan": { - "start": 56, - "length": 5 - }, - "displayParts": [ - { - "text": "\"hello\"", - "kind": "stringLiteral" - } - ] - }, - "references": [] - } -] +// === findAllReferences === +// === /a/a.ts === +// /// +// const str: string = "hello/*FIND ALL REFS*/"; -[] \ No newline at end of file + // === Definitions === + // === /a/a.ts === + // /// + // const str: string = "[|hello|]/*FIND ALL REFS*/"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "hello", + "displayParts": [ + { + "text": "\"hello\"", + "kind": "stringLiteral" + } + ] + } + ] + + + +// === findAllReferences === +// === /b/b.ts === +// const str2: string = "hello/*FIND ALL REFS*/"; \ No newline at end of file diff --git a/tests/baselines/reference/referencesIsAvailableThroughGlobalNoCrash.baseline.jsonc b/tests/baselines/reference/referencesIsAvailableThroughGlobalNoCrash.baseline.jsonc index 7b1eac5d729a0..080e387be7318 100644 --- a/tests/baselines/reference/referencesIsAvailableThroughGlobalNoCrash.baseline.jsonc +++ b/tests/baselines/reference/referencesIsAvailableThroughGlobalNoCrash.baseline.jsonc @@ -1,293 +1,202 @@ +// === findAllReferences === // === /packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts === -// declare var [|debug|]: [|debug|].Debug & { debug: [|debug|].Debug; default: [|debug|].Debug }; -// [|export|] = [|debug|]; +// <|declare var [|{| defId: 1, isWriteAccess: true |}debug|]: [|{| defId: 1 |}debug|].Debug & { debug: [|{| defId: 1 |}debug|].Debug; default: [|{| defId: 1 |}debug|].Debug };|> +// <|[|{| defId: 0 |}<|export|] = [|{| contextId: 2, defId: 1 |}debug|];|>|> // export as namespace debug; -// declare namespace [|debug|] { +// <|declare namespace [|{| defId: 1, isWriteAccess: true |}debug|] { // interface Debug { // coerce: (val: any) => any; // } -// } +// }|> // === /packages/playwright-core/src/index.ts === -// export const debug: typeof import('[|../bundles/utils/node_modules//*FIND ALL REFS*/@types/debug|]') = require('./utilsBundleImpl').debug; +// <|export const debug: typeof import('[|{| defId: 1 |}../bundles/utils/node_modules//*FIND ALL REFS*/@types/debug|]') = require('./utilsBundleImpl').debug;|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "kind": "module", - "name": "module \"/packages/playwright-core/bundles/utils/node_modules/@types/debug/index\"", - "textSpan": { - "start": 0, - "length": 211 - }, - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "\"/packages/playwright-core/bundles/utils/node_modules/@types/debug/index\"", - "kind": "stringLiteral" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 6 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "contextSpan": { - "start": 79, - "length": 15 - }, - "isWriteAccess": false - } + // === Definitions === + // === /packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts === + // [|{| defId: 0 |}<|declare var [|{| defId: 1 |}debug|]: debug.Debug & { debug: debug.Debug; default: debug.Debug };|> + // export = debug; + // export as namespace debug; + // declare namespace debug { + // interface Debug { + // coerce: (val: any) => any; + // } + // }|] + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "module \"/packages/playwright-core/bundles/utils/node_modules/@types/debug/index\"", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"/packages/playwright-core/bundles/utils/node_modules/@types/debug/index\"", + "kind": "stringLiteral" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "kind": "var", - "name": "namespace debug\nvar debug: debug.Debug & {\n debug: debug.Debug;\n default: debug.Debug;\n}", - "textSpan": { - "start": 12, - "length": 5 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Debug", - "kind": "interfaceName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "&", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Debug", - "kind": "text" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "default", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "debug", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Debug", - "kind": "text" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 78 - } - }, - "references": [ - { - "textSpan": { - "start": 12, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "contextSpan": { - "start": 0, - "length": 78 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 19, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 42, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 64, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 88, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "contextSpan": { - "start": 79, - "length": 15 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 35, - "length": 42 - }, - "fileName": "/packages/playwright-core/src/index.ts", - "contextSpan": { - "start": 0, - "length": 117 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 140, - "length": 5 - }, - "fileName": "/packages/playwright-core/bundles/utils/node_modules/@types/debug/index.d.ts", - "contextSpan": { - "start": 122, - "length": 89 - }, - "isWriteAccess": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "namespace debug\nvar debug: debug.Debug & {\n debug: debug.Debug;\n default: debug.Debug;\n}", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Debug", + "kind": "interfaceName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "&", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Debug", + "kind": "text" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "default", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "debug", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Debug", + "kind": "text" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc index 5726d6b471ef6..b8f7efdb595f0 100644 --- a/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc +++ b/tests/baselines/reference/referencesToNonPropertyNameStringLiteral.baseline.jsonc @@ -1,22 +1,23 @@ -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts", - "kind": "var", - "name": "hello", - "textSpan": { - "start": 21, - "length": 5 - }, - "displayParts": [ - { - "text": "\"hello\"", - "kind": "stringLiteral" - } - ] - }, - "references": [] - } -] \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts === +// const str: string = "hello/*FIND ALL REFS*/"; + + // === Definitions === + // === /tests/cases/fourslash/server/referencesToNonPropertyNameStringLiteral.ts === + // const str: string = "[|hello|]/*FIND ALL REFS*/"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "hello", + "displayParts": [ + { + "text": "\"hello\"", + "kind": "stringLiteral" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/referencesToStringLiteralValue.baseline.jsonc b/tests/baselines/reference/referencesToStringLiteralValue.baseline.jsonc index 9cb62930bc016..08e2117b70d6f 100644 --- a/tests/baselines/reference/referencesToStringLiteralValue.baseline.jsonc +++ b/tests/baselines/reference/referencesToStringLiteralValue.baseline.jsonc @@ -1,22 +1,23 @@ -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/server/referencesToStringLiteralValue.ts", - "kind": "var", - "name": "some string", - "textSpan": { - "start": 19, - "length": 12 - }, - "displayParts": [ - { - "text": "\"some string\"", - "kind": "stringLiteral" - } - ] - }, - "references": [] - } -] \ No newline at end of file +// === findAllReferences === +// === /tests/cases/fourslash/server/referencesToStringLiteralValue.ts === +// const s: string = "some /*FIND ALL REFS*/ string"; + + // === Definitions === + // === /tests/cases/fourslash/server/referencesToStringLiteralValue.ts === + // const s: string = "[|some /*FIND ALL REFS*/ string|]"; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "some string", + "displayParts": [ + { + "text": "\"some string\"", + "kind": "stringLiteral" + } + ] + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/remoteGetReferences.baseline.jsonc b/tests/baselines/reference/remoteGetReferences.baseline.jsonc index b78c0de8d644f..b92ed2ba2c74d 100644 --- a/tests/baselines/reference/remoteGetReferences.baseline.jsonc +++ b/tests/baselines/reference/remoteGetReferences.baseline.jsonc @@ -1,62 +1,4 @@ -// === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; -// -// class [|remotefooCls|] { -// //Declare -// remoteclsVar = 1; -// static remoteclsSVar = 1; -// -// constructor(public remoteclsParam: number) { -// //Increments -// remoteglobalVar++; -// this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; -// this.remoteclsParam++; -// remotemodTest.remotemodVar++; -// } -// } -// -// function remotefoo(remotex: number) { -// //Declare -// var remotefnVar = 1; -// -// //Increments -// [|remotefooCls|].remoteclsSVar++; -// remoteglobalVar++; -// remotemodTest.remotemodVar++; -// remotefnVar++; -// -// //Return -// return remotex++; -// } -// -// module remotemodTest { -// //Declare -// export var remotemodVar: number; -// -// //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; -// remotemodVar++; -// -// class remotetestCls { -// static remoteboo = remotefoo; -// } -// -// function remotetestFn(){ -// static remoteboo = remotefoo; -// -// //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; -// remotemodVar++; -// } -// -// module remotetestMod { -// var remoteboo = remotefoo; -// } -// } - +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -175,114 +117,10 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class [|remotefooCls|] { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; @@ -295,7 +133,7 @@ // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare @@ -338,6 +176,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -456,135 +381,31 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.remoteclsSVar++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|remotefooCls|].remoteclsSVar++; +// remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -597,8 +418,8 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -609,8 +430,8 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -619,6 +440,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -714,10 +622,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -737,148 +645,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -887,7 +655,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -901,7 +669,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -914,7 +682,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -926,7 +694,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -936,6 +704,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -1031,10 +898,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -1054,159 +921,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // -// class [|remotefooCls|] { +// class remotefooCls { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -1217,8 +944,8 @@ // var remotefnVar = 1; // // //Increments -// [|remotefooCls|].remoteclsSVar++; -// remoteglobalVar++; +// remotefooCls.remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -1231,8 +958,8 @@ // export var remotemodVar: number; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -1243,8 +970,8 @@ // static remoteboo = remotefoo; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -1253,6 +980,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -1371,134 +1197,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; -// static [|remoteclsSVar|] = 1; +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -1513,7 +1235,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -1525,7 +1247,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -1534,6 +1256,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -1627,7 +1436,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls./*FIND ALL REFS*/[|remoteclsSVar|]++; +// remotefooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -1652,135 +1461,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare // remoteclsVar = 1; -// static remoteclsSVar = 1; +// <|static [|{| isWriteAccess: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -1791,8 +1484,8 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -1805,8 +1498,8 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -1817,8 +1510,8 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -1827,6 +1520,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -1922,10 +1730,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// /*FIND ALL REFS*/[|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -1945,148 +1753,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -2095,7 +1763,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -2109,7 +1777,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -2122,7 +1790,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -2134,7 +1802,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -2144,6 +1812,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -2239,10 +2006,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = /*FIND ALL REFS*/[|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = /*FIND ALL REFS*/[|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -2262,148 +2029,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -2412,7 +2039,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -2426,7 +2053,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -2439,7 +2066,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -2451,7 +2078,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -2461,6 +2088,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -2556,10 +2282,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + /*FIND ALL REFS*/[|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + /*FIND ALL REFS*/[|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -2579,148 +2305,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -2729,7 +2315,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -2743,7 +2329,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -2756,7 +2342,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -2768,7 +2354,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -2778,6 +2364,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -2873,10 +2558,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// /*FIND ALL REFS*/[|remoteglobalVar|] = 3; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -2896,148 +2581,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// /*FIND ALL REFS*/var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -3046,7 +2591,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -3060,7 +2605,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -3073,7 +2618,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -3085,7 +2630,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -3095,6 +2640,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -3190,10 +2834,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -3213,159 +2857,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var /*FIND ALL REFS*/[|remoteglobalVar|]: number = 2; +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -3374,7 +2867,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -3388,7 +2881,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -3401,7 +2894,7 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -3413,7 +2906,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -3423,6 +2916,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // /*FIND ALL REFS*/<|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -3518,10 +3110,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -3541,170 +3133,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}remoteglobalVar|]: number = 2;|> // -// /*FIND ALL REFS*/class [|remotefooCls|] { +// class remotefooCls { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -3715,8 +3156,8 @@ // var remotefnVar = 1; // // //Increments -// [|remotefooCls|].remoteclsSVar++; -// remoteglobalVar++; +// remotefooCls.remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -3729,8 +3170,8 @@ // export var remotemodVar: number; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -3741,8 +3182,8 @@ // static remoteboo = remotefoo; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -3751,6 +3192,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var /*FIND ALL REFS*/[|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -3869,122 +3409,10 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class /*FIND ALL REFS*/[|remotefooCls|] { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; @@ -3997,7 +3425,7 @@ // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare @@ -4040,6 +3468,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // /*FIND ALL REFS*/<|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -4158,142 +3673,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}remotefooCls|] { // //Declare -// /*FIND ALL REFS*/[|remoteclsVar|] = 1; +// remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; -// this.[|remoteclsVar|]++; -// remotefooCls.remoteclsSVar++; +// this.remoteclsVar++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; +// [|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -4308,7 +3711,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.remoteclsSVar++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -4320,7 +3723,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.remoteclsSVar++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -4329,105 +3732,106 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsVar: number", - "textSpan": { - "start": 67, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 67, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 67, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 202, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class /*FIND ALL REFS*/[|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare -// remoteclsVar = 1; -// /*FIND ALL REFS*/static [|remoteclsSVar|] = 1; +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}remoteclsVar|] = 1;|> +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; -// this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// this.[|{| isWriteAccess: true |}remoteclsVar|]++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -4438,7 +3842,7 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -4453,7 +3857,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -4465,7 +3869,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -4474,6 +3878,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // /*FIND ALL REFS*/<|[|remoteclsVar|] = 1;|> + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -4567,7 +4086,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -4592,141 +4111,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare // remoteclsVar = 1; -// static /*FIND ALL REFS*/[|remoteclsSVar|] = 1; +// /*FIND ALL REFS*/<|static [|{| isWriteAccess: true, isDefinition: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -4737,7 +4134,7 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -4752,7 +4149,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -4764,7 +4161,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -4773,6 +4170,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // /*FIND ALL REFS*/<|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -4866,7 +4378,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -4891,141 +4403,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true, - "isDefinition": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare // remoteclsVar = 1; -// static remoteclsSVar = 1; +// <|static /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments -// /*FIND ALL REFS*/[|remoteglobalVar|]++; +// remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -5036,8 +4426,8 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -5050,8 +4440,8 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -5062,8 +4452,8 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -5072,6 +4462,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static /*FIND ALL REFS*/[|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -5167,10 +4672,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -5190,158 +4695,18 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare -// [|remoteclsVar|] = 1; +// remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// remoteglobalVar++; -// this./*FIND ALL REFS*/[|remoteclsVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|]++; +// this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; @@ -5354,7 +4719,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -5367,7 +4732,7 @@ // export var remotemodVar: number; // // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -5379,7 +4744,7 @@ // static remoteboo = remotefoo; // // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -5389,103 +4754,118 @@ // } // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsVar: number", - "textSpan": { - "start": 67, - "length": 12 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 67, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 67, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 67, - "length": 17 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 202, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // /*FIND ALL REFS*/remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class [|remotefooCls|] { +// class remotefooCls { // //Declare -// remoteclsVar = 1; +// <|[|{| isWriteAccess: true |}remoteclsVar|] = 1;|> // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; -// this.remoteclsVar++; -// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; +// this./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsVar|]++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -5496,7 +4876,7 @@ // var remotefnVar = 1; // // //Increments -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -5511,7 +4891,7 @@ // // //Increments // remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -5523,7 +4903,7 @@ // // //Increments // remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -5532,6 +4912,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // <|[|remoteclsVar|] = 1;|> + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this./*FIND ALL REFS*/remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -5650,134 +5145,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; -// static [|remoteclsSVar|] = 1; +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls./*FIND ALL REFS*/[|remoteclsSVar|]++; +// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -5792,7 +5183,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -5804,7 +5195,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -5813,6 +5204,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // /*FIND ALL REFS*/remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -5906,7 +5384,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -5931,135 +5409,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class [|remotefooCls|] { +// class remotefooCls { // //Declare // remoteclsVar = 1; -// static remoteclsSVar = 1; +// <|static [|{| isWriteAccess: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -6070,7 +5432,7 @@ // var remotefnVar = 1; // // //Increments -// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -6085,7 +5447,7 @@ // // //Increments // remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -6097,7 +5459,7 @@ // // //Increments // remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -6106,6 +5468,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls./*FIND ALL REFS*/remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -6224,134 +5701,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; -// static [|remoteclsSVar|] = 1; +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls./*FIND ALL REFS*/[|remoteclsSVar|]++; +// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -6366,7 +5739,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -6378,7 +5751,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -6387,6 +5760,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // /*FIND ALL REFS*/remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -6480,7 +5940,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -6505,135 +5965,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare // remoteclsVar = 1; -// static remoteclsSVar = 1; +// <|static [|{| isWriteAccess: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -6644,8 +5988,8 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; -// /*FIND ALL REFS*/[|remoteglobalVar|]++; +// remotefooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -6658,8 +6002,8 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -6670,8 +6014,8 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -6680,6 +6024,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls./*FIND ALL REFS*/remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -6775,10 +6234,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -6798,148 +6257,8 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // // class remotefooCls { // //Declare @@ -6948,7 +6267,7 @@ // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; // remotefooCls.remoteclsSVar++; // this.remoteclsParam++; @@ -6962,7 +6281,7 @@ // // //Increments // remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -6975,7 +6294,7 @@ // export var remotemodVar: number; // // //Increments -// /*FIND ALL REFS*/[|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // @@ -6987,7 +6306,7 @@ // static remoteboo = remotefoo; // // //Increments -// [|remoteglobalVar|]++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotefooCls.remoteclsSVar++; // remotemodVar++; // } @@ -6997,6 +6316,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // /*FIND ALL REFS*/remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -7092,10 +6510,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -7115,159 +6533,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // -// class [|remotefooCls|] { +// class remotefooCls { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -7278,8 +6556,8 @@ // var remotefnVar = 1; // // //Increments -// [|remotefooCls|].remoteclsSVar++; -// remoteglobalVar++; +// remotefooCls.remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -7292,8 +6570,8 @@ // export var remotemodVar: number; // // //Increments -// remoteglobalVar++; -// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -7304,8 +6582,8 @@ // static remoteboo = remotefoo; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -7314,6 +6592,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // /*FIND ALL REFS*/remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -7432,134 +6809,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; -// static [|remoteclsSVar|] = 1; +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -7574,7 +6847,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls./*FIND ALL REFS*/[|remoteclsSVar|]++; +// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -7586,7 +6859,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -7595,6 +6868,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // /*FIND ALL REFS*/remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -7688,7 +7048,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -7713,135 +7073,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var [|remoteglobalVar|]: number = 2; +// var remoteglobalVar: number = 2; // // class remotefooCls { // //Declare // remoteclsVar = 1; -// static remoteclsSVar = 1; +// <|static [|{| isWriteAccess: true |}remoteclsSVar|] = 1;|> // // constructor(public remoteclsParam: number) { // //Increments -// [|remoteglobalVar|]++; +// remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.remoteclsSVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -7852,8 +7096,8 @@ // var remotefnVar = 1; // // //Increments -// remotefooCls.remoteclsSVar++; -// [|remoteglobalVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -7866,8 +7110,8 @@ // export var remotemodVar: number; // // //Increments -// [|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // // class remotetestCls { @@ -7878,8 +7122,8 @@ // static remoteboo = remotefoo; // // //Increments -// /*FIND ALL REFS*/[|remoteglobalVar|]++; -// remotefooCls.remoteclsSVar++; +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodVar++; // } // @@ -7888,6 +7132,121 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls./*FIND ALL REFS*/remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -7983,10 +7342,10 @@ // //Increments // remotefooCls.remoteclsSVar++; // remotemodTest.remotemodVar++; -// [|remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; +// [|{| isWriteAccess: true |}remoteglobalVar|] = [|remoteglobalVar|] + [|remoteglobalVar|]; // // //ETC - Other cases -// [|remoteglobalVar|] = 3; +// [|{| isWriteAccess: true |}remoteglobalVar|] = 3; // // //Find References misses method param // var @@ -8006,159 +7365,19 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "var", - "name": "var remoteglobalVar: number", - "textSpan": { - "start": 4, - "length": 15 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remoteglobalVar", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 32 - } - }, - "references": [ - { - "textSpan": { - "start": 1358, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1386, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1478, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 1496, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1514, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1552, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 4, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 0, - "length": 32 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 176, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 431, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 614, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 823, - "length": 15 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === -// var remoteglobalVar: number = 2; +// <|var [|{| isWriteAccess: true |}remoteglobalVar|]: number = 2;|> // -// class [|remotefooCls|] { +// class remotefooCls { // //Declare // remoteclsVar = 1; // static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments -// remoteglobalVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // this.remoteclsVar++; -// [|remotefooCls|].remoteclsSVar++; +// remotefooCls.remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } @@ -8169,8 +7388,8 @@ // var remotefnVar = 1; // // //Increments -// [|remotefooCls|].remoteclsSVar++; -// remoteglobalVar++; +// remotefooCls.remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; // remotemodTest.remotemodVar++; // remotefnVar++; // @@ -8183,8 +7402,8 @@ // export var remotemodVar: number; // // //Increments -// remoteglobalVar++; -// [|remotefooCls|].remoteclsSVar++; +// [|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -8195,8 +7414,8 @@ // static remoteboo = remotefoo; // // //Increments -// remoteglobalVar++; -// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; +// /*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteglobalVar|]++; +// remotefooCls.remoteclsSVar++; // remotemodVar++; // } // @@ -8205,6 +7424,105 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // <|var [|remoteglobalVar|]: number = 2;|> + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // /*FIND ALL REFS*/remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var remoteglobalVar: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remoteglobalVar", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -8323,134 +7641,30 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "class", - "name": "class remotefooCls", - "textSpan": { - "start": 40, - "length": 12 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - } - ], - "contextSpan": { - "start": 34, - "length": 277 - } - }, - "references": [ - { - "textSpan": { - "start": 1298, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1345, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 1418, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 40, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 34, - "length": 277 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 220, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 400, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 634, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - }, - { - "textSpan": { - "start": 844, - "length": 12 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": false - } - ] - } -] - // === /tests/cases/fourslash/remoteGetReferences_2.ts === // var remoteglobalVar: number = 2; // -// class remotefooCls { +// <|class [|{| isWriteAccess: true |}remotefooCls|] { // //Declare // remoteclsVar = 1; -// static [|remoteclsSVar|] = 1; +// static remoteclsSVar = 1; // // constructor(public remoteclsParam: number) { // //Increments // remoteglobalVar++; // this.remoteclsVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // this.remoteclsParam++; // remotemodTest.remotemodVar++; // } -// } +// }|> // // function remotefoo(remotex: number) { // //Declare // var remotefnVar = 1; // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remoteglobalVar++; // remotemodTest.remotemodVar++; // remotefnVar++; @@ -8465,7 +7679,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls.[|remoteclsSVar|]++; +// [|remotefooCls|].remoteclsSVar++; // remotemodVar++; // // class remotetestCls { @@ -8477,7 +7691,7 @@ // // //Increments // remoteglobalVar++; -// remotefooCls./*FIND ALL REFS*/[|remoteclsSVar|]++; +// /*FIND ALL REFS*/[|remotefooCls|].remoteclsSVar++; // remotemodVar++; // } // @@ -8486,6 +7700,93 @@ // } // } + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // <|class [|remotefooCls|] { + // //Declare + // remoteclsVar = 1; + // static remoteclsSVar = 1; + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // }|> + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // /*FIND ALL REFS*/remotefooCls.remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class remotefooCls", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === // === /tests/cases/fourslash/remoteGetReferences_1.ts === // // Comment Refence Test: globalVar // var globalVar: number = 2; @@ -8579,7 +7880,7 @@ // remotefoo(remoteglobalVar); // // //Increments -// remotefooCls.[|remoteclsSVar|]++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; // remotemodTest.remotemodVar++; // remoteglobalVar = remoteglobalVar + remoteglobalVar; // @@ -8604,118 +7905,173 @@ // // }); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "kind": "property", - "name": "(property) remotefooCls.remoteclsSVar: number", - "textSpan": { - "start": 93, - "length": 13 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "remotefooCls", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "remoteclsSVar", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 86, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 1431, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_1.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 93, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "contextSpan": { - "start": 86, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 233, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 413, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 647, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - }, - { - "textSpan": { - "start": 857, - "length": 13 - }, - "fileName": "/tests/cases/fourslash/remoteGetReferences_2.ts", - "isWriteAccess": true - } +// === /tests/cases/fourslash/remoteGetReferences_2.ts === +// var remoteglobalVar: number = 2; +// +// class remotefooCls { +// //Declare +// remoteclsVar = 1; +// <|static [|{| isWriteAccess: true |}remoteclsSVar|] = 1;|> +// +// constructor(public remoteclsParam: number) { +// //Increments +// remoteglobalVar++; +// this.remoteclsVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// this.remoteclsParam++; +// remotemodTest.remotemodVar++; +// } +// } +// +// function remotefoo(remotex: number) { +// //Declare +// var remotefnVar = 1; +// +// //Increments +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remoteglobalVar++; +// remotemodTest.remotemodVar++; +// remotefnVar++; +// +// //Return +// return remotex++; +// } +// +// module remotemodTest { +// //Declare +// export var remotemodVar: number; +// +// //Increments +// remoteglobalVar++; +// remotefooCls.[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remotemodVar++; +// +// class remotetestCls { +// static remoteboo = remotefoo; +// } +// +// function remotetestFn(){ +// static remoteboo = remotefoo; +// +// //Increments +// remoteglobalVar++; +// remotefooCls./*FIND ALL REFS*/[|{| isWriteAccess: true |}remoteclsSVar|]++; +// remotemodVar++; +// } +// +// module remotetestMod { +// var remoteboo = remotefoo; +// } +// } + + // === Definitions === + // === /tests/cases/fourslash/remoteGetReferences_2.ts === + // var remoteglobalVar: number = 2; + // + // class remotefooCls { + // //Declare + // remoteclsVar = 1; + // <|static [|remoteclsSVar|] = 1;|> + // + // constructor(public remoteclsParam: number) { + // //Increments + // remoteglobalVar++; + // this.remoteclsVar++; + // remotefooCls.remoteclsSVar++; + // this.remoteclsParam++; + // remotemodTest.remotemodVar++; + // } + // } + // + // function remotefoo(remotex: number) { + // //Declare + // var remotefnVar = 1; + // + // //Increments + // remotefooCls.remoteclsSVar++; + // remoteglobalVar++; + // remotemodTest.remotemodVar++; + // remotefnVar++; + // + // //Return + // return remotex++; + // } + // + // module remotemodTest { + // //Declare + // export var remotemodVar: number; + // + // //Increments + // remoteglobalVar++; + // remotefooCls.remoteclsSVar++; + // remotemodVar++; + // + // class remotetestCls { + // static remoteboo = remotefoo; + // } + // + // function remotetestFn(){ + // static remoteboo = remotefoo; + // + // //Increments + // remoteglobalVar++; + // remotefooCls./*FIND ALL REFS*/remoteclsSVar++; + // remotemodVar++; + // } + // + // module remotetestMod { + // var remoteboo = remotefoo; + // } + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) remotefooCls.remoteclsSVar: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "remotefooCls", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "remoteclsSVar", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/rename01.baseline.jsonc b/tests/baselines/reference/rename01.baseline.jsonc new file mode 100644 index 0000000000000..5b024d1599513 --- /dev/null +++ b/tests/baselines/reference/rename01.baseline.jsonc @@ -0,0 +1,10 @@ +// === findRenameLocations === +// @findInStrings: true +// @findInComments: true + +// === /tests/cases/fourslash/server/rename01.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to [|BarRENAME|] in a comment. +// "this is a reference to [|BarRENAME|] in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameAcrossMultipleProjects.baseline.jsonc b/tests/baselines/reference/renameAcrossMultipleProjects.baseline.jsonc new file mode 100644 index 0000000000000..75249c60593fb --- /dev/null +++ b/tests/baselines/reference/renameAcrossMultipleProjects.baseline.jsonc @@ -0,0 +1,39 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|var /*RENAME*/[|xRENAME|]: number;|> + +// === /tests/cases/fourslash/b.ts === +// /// +// [|xRENAME|]++; + +// === /tests/cases/fourslash/c.ts === +// /// +// [|xRENAME|]++; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|var [|xRENAME|]: number;|> + +// === /tests/cases/fourslash/b.ts === +// /// +// /*RENAME*/[|xRENAME|]++; + +// === /tests/cases/fourslash/c.ts === +// /// +// [|xRENAME|]++; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|var [|xRENAME|]: number;|> + +// === /tests/cases/fourslash/b.ts === +// /// +// [|xRENAME|]++; + +// === /tests/cases/fourslash/c.ts === +// /// +// /*RENAME*/[|xRENAME|]++; \ No newline at end of file diff --git a/tests/baselines/reference/renameAlias.baseline.jsonc b/tests/baselines/reference/renameAlias.baseline.jsonc new file mode 100644 index 0000000000000..c7a77217631c6 --- /dev/null +++ b/tests/baselines/reference/renameAlias.baseline.jsonc @@ -0,0 +1,13 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias.ts === +// module SomeModule { export class SomeClass { } } +// <|import /*RENAME*/[|MRENAME|] = SomeModule;|> +// import C = [|MRENAME|].SomeClass; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias.ts === +// module SomeModule { export class SomeClass { } } +// <|import [|MRENAME|] = SomeModule;|> +// import C = /*RENAME*/[|MRENAME|].SomeClass; \ No newline at end of file diff --git a/tests/baselines/reference/renameAlias2.baseline.jsonc b/tests/baselines/reference/renameAlias2.baseline.jsonc new file mode 100644 index 0000000000000..21368f9c32325 --- /dev/null +++ b/tests/baselines/reference/renameAlias2.baseline.jsonc @@ -0,0 +1,13 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias2.ts === +// <|module /*RENAME*/[|SomeModuleRENAME|] { export class SomeClass { } }|> +// import M = [|SomeModuleRENAME|]; +// import C = M.SomeClass; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias2.ts === +// <|module [|SomeModuleRENAME|] { export class SomeClass { } }|> +// import M = /*RENAME*/[|SomeModuleRENAME|]; +// import C = M.SomeClass; \ No newline at end of file diff --git a/tests/baselines/reference/renameAlias3.baseline.jsonc b/tests/baselines/reference/renameAlias3.baseline.jsonc new file mode 100644 index 0000000000000..a0bf3ae5b1ad5 --- /dev/null +++ b/tests/baselines/reference/renameAlias3.baseline.jsonc @@ -0,0 +1,13 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias3.ts === +// module SomeModule { <|export class /*RENAME*/[|SomeClassRENAME|] { }|> } +// import M = SomeModule; +// import C = M.[|SomeClassRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameAlias3.ts === +// module SomeModule { <|export class [|SomeClassRENAME|] { }|> } +// import M = SomeModule; +// import C = M./*RENAME*/[|SomeClassRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameAliasExternalModule.baseline.jsonc b/tests/baselines/reference/renameAliasExternalModule.baseline.jsonc new file mode 100644 index 0000000000000..520d484eceabd --- /dev/null +++ b/tests/baselines/reference/renameAliasExternalModule.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import /*RENAME*/[|MRENAME|] = require("./a");|> +// import C = [|MRENAME|].SomeClass; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import [|MRENAME|] = require("./a");|> +// import C = /*RENAME*/[|MRENAME|].SomeClass; \ No newline at end of file diff --git a/tests/baselines/reference/renameAliasExternalModule2.baseline.jsonc b/tests/baselines/reference/renameAliasExternalModule2.baseline.jsonc new file mode 100644 index 0000000000000..23b8314ef5deb --- /dev/null +++ b/tests/baselines/reference/renameAliasExternalModule2.baseline.jsonc @@ -0,0 +1,25 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|module /*RENAME*/[|SomeModuleRENAME|] { export class SomeClass { } }|> +// <|export = [|SomeModuleRENAME|];|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|module [|SomeModuleRENAME|] { export class SomeClass { } }|> +// <|export = /*RENAME*/[|SomeModuleRENAME|];|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import /*RENAME*/[|MRENAME|] = require("./a");|> +// import C = [|MRENAME|].SomeClass; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import [|MRENAME|] = require("./a");|> +// import C = /*RENAME*/[|MRENAME|].SomeClass; \ No newline at end of file diff --git a/tests/baselines/reference/renameAliasExternalModule3.baseline.jsonc b/tests/baselines/reference/renameAliasExternalModule3.baseline.jsonc new file mode 100644 index 0000000000000..889e4ded057d6 --- /dev/null +++ b/tests/baselines/reference/renameAliasExternalModule3.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// module SomeModule { <|export class /*RENAME*/[|SomeClassRENAME|] { }|> } +// export = SomeModule; + +// === /tests/cases/fourslash/b.ts === +// import M = require("./a"); +// import C = M.[|SomeClassRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// module SomeModule { <|export class [|SomeClassRENAME|] { }|> } +// export = SomeModule; + +// === /tests/cases/fourslash/b.ts === +// import M = require("./a"); +// import C = M./*RENAME*/[|SomeClassRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameBindingElementInitializerExternal.baseline.jsonc b/tests/baselines/reference/renameBindingElementInitializerExternal.baseline.jsonc new file mode 100644 index 0000000000000..bea6703df4a40 --- /dev/null +++ b/tests/baselines/reference/renameBindingElementInitializerExternal.baseline.jsonc @@ -0,0 +1,123 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const /*RENAME*/[|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = /*RENAME*/[|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = /*RENAME*/[|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = /*RENAME*/[|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = /*RENAME*/[|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = /*RENAME*/[|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// } = obj; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerExternal.ts === +// <|const [|externalRENAME|] = true;|> +// +// function f({ +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = [|externalRENAME|] +// }) {} +// +// const { +// lvl1 = [|externalRENAME|], +// nested: { lvl2 = [|externalRENAME|]}, +// oldName: newName = /*RENAME*/[|externalRENAME|] +// } = obj; \ No newline at end of file diff --git a/tests/baselines/reference/renameBindingElementInitializerProperty.baseline.jsonc b/tests/baselines/reference/renameBindingElementInitializerProperty.baseline.jsonc new file mode 100644 index 0000000000000..0d1455e9757ab --- /dev/null +++ b/tests/baselines/reference/renameBindingElementInitializerProperty.baseline.jsonc @@ -0,0 +1,52 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerProperty.ts === +// function f(<|{/*START PREFIX*/required: /*RENAME*/[|requiredRENAME|], optional = [|requiredRENAME|]}: {required: number, optional?: number}|>) { +// console.log("required", [|requiredRENAME|]); +// console.log("optional", optional); +// } +// +// f({required: 10}); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerProperty.ts === +// function f(<|{/*START PREFIX*/required: [|requiredRENAME|], optional = /*RENAME*/[|requiredRENAME|]}: {required: number, optional?: number}|>) { +// console.log("required", [|requiredRENAME|]); +// console.log("optional", optional); +// } +// +// f({required: 10}); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerProperty.ts === +// function f(<|{/*START PREFIX*/required: [|requiredRENAME|], optional = [|requiredRENAME|]}: {required: number, optional?: number}|>) { +// console.log("required", /*RENAME*/[|requiredRENAME|]); +// console.log("optional", optional); +// } +// +// f({required: 10}); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerProperty.ts === +// function f(<|{[|requiredRENAME|]: required/*END SUFFIX*/, optional = required}: {/*RENAME*/<|[|requiredRENAME|]: number,|> optional?: number}|>) { +// console.log("required", required); +// console.log("optional", optional); +// } +// +// f({<|[|requiredRENAME|]: 10|>}); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameBindingElementInitializerProperty.ts === +// function f(<|{[|requiredRENAME|]: required/*END SUFFIX*/, optional = required}: {<|[|requiredRENAME|]: number,|> optional?: number}|>) { +// console.log("required", required); +// console.log("optional", optional); +// } +// +// f({/*RENAME*/<|[|requiredRENAME|]: 10|>}); \ No newline at end of file diff --git a/tests/baselines/reference/renameCommentsAndStrings1.baseline.jsonc b/tests/baselines/reference/renameCommentsAndStrings1.baseline.jsonc new file mode 100644 index 0000000000000..7dc8a283f5187 --- /dev/null +++ b/tests/baselines/reference/renameCommentsAndStrings1.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameCommentsAndStrings1.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to Bar in a comment. +// "this is a reference to Bar in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameCommentsAndStrings2.baseline.jsonc b/tests/baselines/reference/renameCommentsAndStrings2.baseline.jsonc new file mode 100644 index 0000000000000..06e6ca082281b --- /dev/null +++ b/tests/baselines/reference/renameCommentsAndStrings2.baseline.jsonc @@ -0,0 +1,9 @@ +// === findRenameLocations === +// @findInStrings: true + +// === /tests/cases/fourslash/renameCommentsAndStrings2.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to Bar in a comment. +// "this is a reference to [|BarRENAME|] in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameCommentsAndStrings3.baseline.jsonc b/tests/baselines/reference/renameCommentsAndStrings3.baseline.jsonc new file mode 100644 index 0000000000000..fbf0082685f50 --- /dev/null +++ b/tests/baselines/reference/renameCommentsAndStrings3.baseline.jsonc @@ -0,0 +1,9 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameCommentsAndStrings3.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to [|BarRENAME|] in a comment. +// "this is a reference to Bar in a string" +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameCommentsAndStrings4.baseline.jsonc b/tests/baselines/reference/renameCommentsAndStrings4.baseline.jsonc new file mode 100644 index 0000000000000..cbced1fc3ee81 --- /dev/null +++ b/tests/baselines/reference/renameCommentsAndStrings4.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// @findInStrings: true +// @findInComments: true + +// === /tests/cases/fourslash/renameCommentsAndStrings4.ts === +// /// +// <|function /*RENAME*/[|BarRENAME|]() { +// // This is a reference to [|BarRENAME|] in a comment. +// "this is a reference to [|BarRENAME|] in a string"; +// `Foo [|BarRENAME|] Baz.`; +// { +// const Bar = 0; +// `[|BarRENAME|] ba ${Bar} bara [|BarRENAME|] berbobo ${Bar} araura [|BarRENAME|] ara!`; +// } +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameContextuallyTypedProperties.baseline.jsonc b/tests/baselines/reference/renameContextuallyTypedProperties.baseline.jsonc new file mode 100644 index 0000000000000..5d112b7748f39 --- /dev/null +++ b/tests/baselines/reference/renameContextuallyTypedProperties.baseline.jsonc @@ -0,0 +1,646 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// /*RENAME*/<|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// /*RENAME*/<|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// /*RENAME*/<|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get /*RENAME*/[|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set /*RENAME*/[|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"/*RENAME*/[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"/*RENAME*/[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["/*RENAME*/[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["/*RENAME*/[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["/*RENAME*/[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties.ts === +// interface I { +// <|[|prop1RENAME|]: () => void;|> +// prop2(): void; +// } +// +// var o1: I = { +// <|[|prop1RENAME|]() { }|>, +// prop2() { } +// }; +// +// var o2: I = { +// <|[|prop1RENAME|]: () => { }|>, +// prop2: () => { } +// }; +// +// var o3: I = { +// <|get [|prop1RENAME|]() { return () => { }; }|>, +// get prop2() { return () => { }; } +// }; +// +// var o4: I = { +// <|set [|prop1RENAME|](v) { }|>, +// set prop2(v) { } +// }; +// +// var o5: I = { +// <|"[|prop1RENAME|]"() { }|>, +// "prop2"() { } +// }; +// +// var o6: I = { +// <|"[|prop1RENAME|]": function () { }|>, +// "prop2": function () { } +// }; +// +// var o7: I = { +// <|["[|prop1RENAME|]"]: function () { }|>, +// ["prop2"]: function () { } +// }; +// +// var o8: I = { +// <|["[|prop1RENAME|]"]() { }|>, +// ["prop2"]() { } +// }; +// +// var o9: I = { +// <|get ["[|prop1RENAME|]"]() { return () => { }; }|>, +// get ["prop2"]() { return () => { }; } +// }; +// +// var o10: I = { +// <|set ["/*RENAME*/[|prop1RENAME|]"](v) { }|>, +// set ["prop2"](v) { } +// }; \ No newline at end of file diff --git a/tests/baselines/reference/renameContextuallyTypedProperties2.baseline.jsonc b/tests/baselines/reference/renameContextuallyTypedProperties2.baseline.jsonc new file mode 100644 index 0000000000000..3dd336a69d135 --- /dev/null +++ b/tests/baselines/reference/renameContextuallyTypedProperties2.baseline.jsonc @@ -0,0 +1,646 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// /*RENAME*/<|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// /*RENAME*/<|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// /*RENAME*/<|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get /*RENAME*/[|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set /*RENAME*/[|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"/*RENAME*/[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"/*RENAME*/[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["/*RENAME*/[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["/*RENAME*/[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["/*RENAME*/[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["[|prop2RENAME|]"](v) { }|> +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameContextuallyTypedProperties2.ts === +// interface I { +// prop1: () => void; +// <|[|prop2RENAME|](): void;|> +// } +// +// var o1: I = { +// prop1() { }, +// <|[|prop2RENAME|]() { }|> +// }; +// +// var o2: I = { +// prop1: () => { }, +// <|[|prop2RENAME|]: () => { }|> +// }; +// +// var o3: I = { +// get prop1() { return () => { }; }, +// <|get [|prop2RENAME|]() { return () => { }; }|> +// }; +// +// var o4: I = { +// set prop1(v) { }, +// <|set [|prop2RENAME|](v) { }|> +// }; +// +// var o5: I = { +// "prop1"() { }, +// <|"[|prop2RENAME|]"() { }|> +// }; +// +// var o6: I = { +// "prop1": function () { }, +// <|"[|prop2RENAME|]": function () { }|> +// }; +// +// var o7: I = { +// ["prop1"]: function () { }, +// <|["[|prop2RENAME|]"]: function () { }|> +// }; +// +// var o8: I = { +// ["prop1"]() { }, +// <|["[|prop2RENAME|]"]() { }|> +// }; +// +// var o9: I = { +// get ["prop1"]() { return () => { }; }, +// <|get ["[|prop2RENAME|]"]() { return () => { }; }|> +// }; +// +// var o10: I = { +// set ["prop1"](v) { }, +// <|set ["/*RENAME*/[|prop2RENAME|]"](v) { }|> +// }; \ No newline at end of file diff --git a/tests/baselines/reference/renameCrossJsTs01.baseline.jsonc b/tests/baselines/reference/renameCrossJsTs01.baseline.jsonc new file mode 100644 index 0000000000000..db742896a797e --- /dev/null +++ b/tests/baselines/reference/renameCrossJsTs01.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// <|exports./*RENAME*/[|areaRENAME|] = function (r) { return r * r; }|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|areaRENAME|] } from './a';|> +// var t = [|areaRENAME|](10); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import { /*START PREFIX*/area as /*RENAME*/[|areaRENAME|] } from './a';|> +// var t = [|areaRENAME|](10); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import { /*START PREFIX*/area as [|areaRENAME|] } from './a';|> +// var t = /*RENAME*/[|areaRENAME|](10); \ No newline at end of file diff --git a/tests/baselines/reference/renameDeclarationKeywords.baseline.jsonc b/tests/baselines/reference/renameDeclarationKeywords.baseline.jsonc new file mode 100644 index 0000000000000..de12c5f4cebfc --- /dev/null +++ b/tests/baselines/reference/renameDeclarationKeywords.baseline.jsonc @@ -0,0 +1,297 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// /*RENAME*/<|class [|C1RENAME|] extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// }|> +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// <|class [|BaseRENAME|] {}|> +// interface Implemented1 {} +// class C1 /*RENAME*/extends [|BaseRENAME|] implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends [|BaseRENAME|] { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// <|interface [|Implemented1RENAME|] {}|> +// class C1 extends Base /*RENAME*/implements [|Implemented1RENAME|] { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// /*RENAME*/<|get [|eRENAME|]() { return 1; }|> +// <|set [|eRENAME|](v) {}|> +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// <|get [|eRENAME|]() { return 1; }|> +// /*RENAME*/<|set [|eRENAME|](v) {}|> +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// /*RENAME*/<|interface [|I1RENAME|] extends Base { }|> +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// <|class [|BaseRENAME|] {}|> +// interface Implemented1 {} +// class C1 extends [|BaseRENAME|] implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 /*RENAME*/extends [|BaseRENAME|] { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// /*RENAME*/<|type [|TRENAME|] = { }|> +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// /*RENAME*/<|enum [|ERENAME|] { }|> +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// /*RENAME*/<|namespace [|NRENAME|] { }|> +// module M { } +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// /*RENAME*/<|module [|MRENAME|] { }|> +// function fn() {} +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// /*RENAME*/<|function [|fnRENAME|]() {}|> +// var x; +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// /*RENAME*/<|var [|xRENAME|];|> +// let y; +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// /*RENAME*/<|let [|yRENAME|];|> +// const z = 1; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDeclarationKeywords.ts === +// class Base {} +// interface Implemented1 {} +// class C1 extends Base implements Implemented1 { +// get e() { return 1; } +// set e(v) {} +// } +// interface I1 extends Base { } +// type T = { } +// enum E { } +// namespace N { } +// module M { } +// function fn() {} +// var x; +// let y; +// /*RENAME*/<|const [|zRENAME|] = 1;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameDefaultImport.baseline.jsonc b/tests/baselines/reference/renameDefaultImport.baseline.jsonc index 9d1ae7fb20a00..9d59fadd91e1f 100644 --- a/tests/baselines/reference/renameDefaultImport.baseline.jsonc +++ b/tests/baselines/reference/renameDefaultImport.baseline.jsonc @@ -1,293 +1,244 @@ -// === /tests/cases/fourslash/A.ts === -// import [|B|] from "./B"; -// let b = new [|B|](); -// b.test(); - +// === findAllReferences === // === /tests/cases/fourslash/B.ts === -// export default class /*FIND ALL REFS*/[|B|] { +// <|export default class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] { // test() { // } -// } +// }|> + +// === /tests/cases/fourslash/A.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}B|] from "./B";|> +// let b = new [|{| defId: 1 |}B|](); +// b.test(); + + // === Definitions === + // === /tests/cases/fourslash/B.ts === + // <|export default class /*FIND ALL REFS*/[|{| defId: 0 |}B|] { + // test() { + // } + // }|> + + // === /tests/cases/fourslash/A.ts === + // <|import [|{| defId: 1 |}B|] from "./B";|> + // let b = new B(); + // b.test(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/B.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/B.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/A.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/A.ts === -// import /*FIND ALL REFS*/[|B|] from "./B"; -// let b = new [|B|](); +// <|import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] from "./B";|> +// let b = new [|{| defId: 0 |}B|](); // b.test(); // === /tests/cases/fourslash/B.ts === -// export default class [|B|] { +// <|export default class [|{| defId: 1, isWriteAccess: true |}B|] { // test() { // } -// } +// }|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/A.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/A.ts === + // <|import /*FIND ALL REFS*/[|{| defId: 0 |}B|] from "./B";|> + // let b = new B(); + // b.test(); + + // === /tests/cases/fourslash/B.ts === + // <|export default class [|{| defId: 1 |}B|] { + // test() { + // } + // }|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/B.ts", - "kind": "class", - "name": "class B", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/B.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class B", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/B.ts === +// <|export default class /*RENAME*/[|BRENAME|] { +// test() { +// } +// }|> + +// === /tests/cases/fourslash/A.ts === +// <|import [|BRENAME|] from "./B";|> +// let b = new [|BRENAME|](); +// b.test(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/A.ts === +// <|import /*RENAME*/[|BRENAME|] from "./B";|> +// let b = new [|BRENAME|](); +// b.test(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/A.ts === +// <|import [|BRENAME|] from "./B";|> +// let b = new /*RENAME*/[|BRENAME|](); +// b.test(); + + + +// === documentHighlights === +// === /tests/cases/fourslash/B.ts === +// <|export default class /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}B|] { +// test() { +// } +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameDefaultImportDifferentName.baseline.jsonc b/tests/baselines/reference/renameDefaultImportDifferentName.baseline.jsonc index 7cc5a4f60a07b..7c99feca49da4 100644 --- a/tests/baselines/reference/renameDefaultImportDifferentName.baseline.jsonc +++ b/tests/baselines/reference/renameDefaultImportDifferentName.baseline.jsonc @@ -1,241 +1,205 @@ -// === /tests/cases/fourslash/A.ts === -// import [|B|] from "./B"; -// let b = new [|B|](); -// b.test(); - +// === findAllReferences === // === /tests/cases/fourslash/B.ts === -// export default class /*FIND ALL REFS*/[|C|] { +// <|export default class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}C|] { // test() { // } -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/B.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 21, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 45 - } - }, - "references": [ - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/B.ts", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true, - "isDefinition": true - } +// }|> + +// === /tests/cases/fourslash/A.ts === +// <|import [|{| defId: 1, isWriteAccess: true |}B|] from "./B";|> +// let b = new [|{| defId: 1 |}B|](); +// b.test(); + + // === Definitions === + // === /tests/cases/fourslash/B.ts === + // <|export default class /*FIND ALL REFS*/[|{| defId: 0 |}C|] { + // test() { + // } + // }|> + + // === /tests/cases/fourslash/A.ts === + // <|import [|{| defId: 1 |}B|] from "./B";|> + // let b = new B(); + // b.test(); + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/A.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/A.ts === -// import /*FIND ALL REFS*/[|B|] from "./B"; +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}B|] from "./B";|> // let b = new [|B|](); // b.test(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/A.ts", - "kind": "alias", - "name": "(alias) class B\nimport B", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 33, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/A.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/A.ts === + // <|import /*FIND ALL REFS*/[|B|] from "./B";|> + // let b = new B(); + // b.test(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/B.ts === +// <|export default class /*RENAME*/[|CRENAME|] { +// test() { +// } +// }|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/A.ts === +// <|import /*RENAME*/[|BRENAME|] from "./B";|> +// let b = new [|BRENAME|](); +// b.test(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/A.ts === +// <|import [|BRENAME|] from "./B";|> +// let b = new /*RENAME*/[|BRENAME|](); +// b.test(); + + + +// === documentHighlights === +// === /tests/cases/fourslash/B.ts === +// <|export default class /*HIGHLIGHTS*/[|{| kind: "writtenReference" |}C|] { +// test() { +// } +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameDefaultLibDontWork.baseline.jsonc b/tests/baselines/reference/renameDefaultLibDontWork.baseline.jsonc new file mode 100644 index 0000000000000..05af65249cd82 --- /dev/null +++ b/tests/baselines/reference/renameDefaultLibDontWork.baseline.jsonc @@ -0,0 +1,6 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/file1.ts === +// <|var /*RENAME*/[|testRENAME|] = "foo";|> +// console.log([|testRENAME|]); \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignment.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignment.baseline.jsonc new file mode 100644 index 0000000000000..071b58572bb37 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignment.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignment.ts === +// interface I { +// /*RENAME*/<|[|xRENAME|]: number;|> +// } +// var a: I; +// var x; +// (<|{ [|xRENAME|]: x } = a|>); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignment.ts === +// interface I { +// <|[|xRENAME|]: number;|> +// } +// var a: I; +// var x; +// (<|{ /*RENAME*/[|xRENAME|]: x } = a|>); \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentInFor.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentInFor.baseline.jsonc new file mode 100644 index 0000000000000..1393ebd269fd4 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentInFor.baseline.jsonc @@ -0,0 +1,82 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInFor.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (<|{ [|property1RENAME|]: property1/*END SUFFIX*/ } = elems[0]|>; p2 < 100; p2++) { +// p2 = property1++; +// } +// for (<|{ [|property1RENAME|]: p2 } = elems[0]|>; p2 < 100; p2++) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInFor.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (<|{ [|property1RENAME|]: property1/*END SUFFIX*/ } = elems[0]|>; p2 < 100; p2++) { +// p2 = property1++; +// } +// for (<|{ /*RENAME*/[|property1RENAME|]: p2 } = elems[0]|>; p2 < 100; p2++) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInFor.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, /*RENAME*/<|[|property1RENAME|]: number|>; +// for (<|{ /*START PREFIX*/property1: [|property1RENAME|] } = elems[0]|>; p2 < 100; p2++) { +// p2 = [|property1RENAME|]++; +// } +// for ({ property1: p2 } = elems[0]; p2 < 100; p2++) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInFor.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, <|[|property1RENAME|]: number|>; +// for (<|{ /*START PREFIX*/property1: /*RENAME*/[|property1RENAME|] } = elems[0]|>; p2 < 100; p2++) { +// p2 = [|property1RENAME|]++; +// } +// for ({ property1: p2 } = elems[0]; p2 < 100; p2++) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInFor.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, <|[|property1RENAME|]: number|>; +// for (<|{ /*START PREFIX*/property1: [|property1RENAME|] } = elems[0]|>; p2 < 100; p2++) { +// p2 = /*RENAME*/[|property1RENAME|]++; +// } +// for ({ property1: p2 } = elems[0]; p2 < 100; p2++) { +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentInForOf.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentInForOf.baseline.jsonc new file mode 100644 index 0000000000000..85b2f3a9eb235 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentInForOf.baseline.jsonc @@ -0,0 +1,82 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var property1: number, p2: number; +// for (<|{ [|property1RENAME|]: property1/*END SUFFIX*/ } of elems|>) { +// property1++; +// } +// for (<|{ [|property1RENAME|]: p2 } of elems|>) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var property1: number, p2: number; +// for (<|{ [|property1RENAME|]: property1/*END SUFFIX*/ } of elems|>) { +// property1++; +// } +// for (<|{ /*RENAME*/[|property1RENAME|]: p2 } of elems|>) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var /*RENAME*/<|[|property1RENAME|]: number|>, p2: number; +// for (<|{ /*START PREFIX*/property1: [|property1RENAME|] } of elems|>) { +// [|property1RENAME|]++; +// } +// for ({ property1: p2 } of elems) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var <|[|property1RENAME|]: number|>, p2: number; +// for (<|{ /*START PREFIX*/property1: /*RENAME*/[|property1RENAME|] } of elems|>) { +// [|property1RENAME|]++; +// } +// for ({ property1: p2 } of elems) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var <|[|property1RENAME|]: number|>, p2: number; +// for (<|{ /*START PREFIX*/property1: [|property1RENAME|] } of elems|>) { +// /*RENAME*/[|property1RENAME|]++; +// } +// for ({ property1: p2 } of elems) { +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentNestedInArrayLiteral.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentNestedInArrayLiteral.baseline.jsonc new file mode 100644 index 0000000000000..db5e830f4b8d5 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentNestedInArrayLiteral.baseline.jsonc @@ -0,0 +1,45 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[], p1: number, property1: number; +// <|[{ [|property1RENAME|]: p1 }] = elems;|> +// <|[{ [|property1RENAME|]: property1/*END SUFFIX*/ }] = elems;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[], p1: number, property1: number; +// <|[{ /*RENAME*/[|property1RENAME|]: p1 }] = elems;|> +// <|[{ [|property1RENAME|]: property1/*END SUFFIX*/ }] = elems;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[], p1: number, /*RENAME*/<|[|property1RENAME|]: number|>; +// [{ property1: p1 }] = elems; +// <|[{ /*START PREFIX*/property1: [|property1RENAME|] }] = elems;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[], p1: number, <|[|property1RENAME|]: number|>; +// [{ property1: p1 }] = elems; +// <|[{ /*START PREFIX*/property1: /*RENAME*/[|property1RENAME|] }] = elems;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentNestedInFor.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentNestedInFor.baseline.jsonc new file mode 100644 index 0000000000000..ecdcc0426e2f8 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentNestedInFor.baseline.jsonc @@ -0,0 +1,92 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts === +// interface MultiRobot { +// name: string; +// skills: { +// /*RENAME*/<|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, primary: string, secondary: string, primaryA: string, secondaryA: string, i: number; +// for (<|{ skills: { [|primaryRENAME|]: primaryA, secondary: secondaryA } } = multiRobot|>, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts === +// interface MultiRobot { +// name: string; +// skills: { +// <|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, primary: string, secondary: string, primaryA: string, secondaryA: string, i: number; +// for (<|{ skills: { /*RENAME*/[|primaryRENAME|]: primaryA, secondary: secondaryA } } = multiRobot|>, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, /*RENAME*/<|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: /*RENAME*/[|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// /*RENAME*/[|primaryRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentNestedInFor2.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentNestedInFor2.baseline.jsonc new file mode 100644 index 0000000000000..f0dbe6c40a77f --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentNestedInFor2.baseline.jsonc @@ -0,0 +1,92 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// /*RENAME*/<|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, primary: string, secondary: string, primaryA: string, secondaryA: string, i: number; +// for (<|{ skills: { [|primaryRENAME|]: primaryA, secondary: secondaryA } } = multiRobot|>, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// <|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, primary: string, secondary: string, primaryA: string, secondaryA: string, i: number; +// for (<|{ skills: { /*RENAME*/[|primaryRENAME|]: primaryA, secondary: secondaryA } } = multiRobot|>, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, /*RENAME*/<|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: /*RENAME*/[|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobot: MultiRobot, <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string, i: number; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } = multiRobot|>, i = 0; i < 1; i++) { +// /*RENAME*/[|primaryRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf.baseline.jsonc new file mode 100644 index 0000000000000..1b8ff54c83cc9 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf.baseline.jsonc @@ -0,0 +1,97 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts === +// interface MultiRobot { +// name: string; +// skills: { +// /*RENAME*/<|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// let primary: string, secondary: string, primaryA: string, secondaryA: string; +// for (<|{ skills: { [|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts === +// interface MultiRobot { +// name: string; +// skills: { +// <|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// let primary: string, secondary: string, primaryA: string, secondaryA: string; +// for (<|{ skills: { /*RENAME*/[|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// primaryA; +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// primary; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// let /*RENAME*/<|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } of multiRobots|>) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// let <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: /*RENAME*/[|primaryRENAME|], secondary } } of multiRobots|>) { +// [|primaryRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// let <|[|primaryRENAME|]: string|>, secondary: string, primaryA: string, secondaryA: string; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// primaryA; +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } of multiRobots|>) { +// /*RENAME*/[|primaryRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf2.baseline.jsonc b/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf2.baseline.jsonc new file mode 100644 index 0000000000000..d079cc1f8113b --- /dev/null +++ b/tests/baselines/reference/renameDestructuringAssignmentNestedInForOf2.baseline.jsonc @@ -0,0 +1,92 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// /*RENAME*/<|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[], primary: string; +// for (<|{ skills: { [|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// console.log(primaryA); +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// console.log(primary); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// <|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[], primary: string; +// for (<|{ skills: { /*RENAME*/[|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// console.log(primaryA); +// } +// for (<|{ skills: { [|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// console.log(primary); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[], /*RENAME*/<|[|primaryRENAME|]: string|>; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// console.log(primaryA); +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } of multiRobots|>) { +// console.log([|primaryRENAME|]); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[], <|[|primaryRENAME|]: string|>; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// console.log(primaryA); +// } +// for (<|{ skills: { /*START PREFIX*/primary: /*RENAME*/[|primaryRENAME|], secondary } } of multiRobots|>) { +// console.log([|primaryRENAME|]); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[], <|[|primaryRENAME|]: string|>; +// for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) { +// console.log(primaryA); +// } +// for (<|{ skills: { /*START PREFIX*/primary: [|primaryRENAME|], secondary } } of multiRobots|>) { +// console.log(/*RENAME*/[|primaryRENAME|]); +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringClassProperty.baseline.jsonc b/tests/baselines/reference/renameDestructuringClassProperty.baseline.jsonc new file mode 100644 index 0000000000000..f5ad24c68392c --- /dev/null +++ b/tests/baselines/reference/renameDestructuringClassProperty.baseline.jsonc @@ -0,0 +1,97 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringClassProperty.ts === +// class A { +// /*RENAME*/<|[|fooRENAME|]: string;|> +// } +// class B { +// syntax1(a: A): void { +// <|let { [|fooRENAME|]: foo/*END SUFFIX*/ } = a;|> +// } +// syntax2(a: A): void { +// <|let { [|fooRENAME|]: foo } = a;|> +// } +// syntax11(a: A): void { +// <|let { [|fooRENAME|]: foo/*END SUFFIX*/ } = a;|> +// foo = "newString"; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringClassProperty.ts === +// class A { +// <|[|fooRENAME|]: string;|> +// } +// class B { +// syntax1(a: A): void { +// <|let { [|fooRENAME|]: foo/*END SUFFIX*/ } = a;|> +// } +// syntax2(a: A): void { +// <|let { /*RENAME*/[|fooRENAME|]: foo } = a;|> +// } +// syntax11(a: A): void { +// <|let { [|fooRENAME|]: foo/*END SUFFIX*/ } = a;|> +// foo = "newString"; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringClassProperty.ts === +// class A { +// foo: string; +// } +// class B { +// syntax1(a: A): void { +// <|let { /*START PREFIX*/foo: /*RENAME*/[|fooRENAME|] } = a;|> +// } +// syntax2(a: A): void { +// let { foo: foo } = a; +// } +// syntax11(a: A): void { +// let { foo } = a; +// foo = "newString"; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringClassProperty.ts === +// class A { +// foo: string; +// } +// class B { +// syntax1(a: A): void { +// let { foo } = a; +// } +// syntax2(a: A): void { +// let { foo: foo } = a; +// } +// syntax11(a: A): void { +// <|let { /*START PREFIX*/foo: /*RENAME*/[|fooRENAME|] } = a;|> +// [|fooRENAME|] = "newString"; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringClassProperty.ts === +// class A { +// foo: string; +// } +// class B { +// syntax1(a: A): void { +// let { foo } = a; +// } +// syntax2(a: A): void { +// let { foo: foo } = a; +// } +// syntax11(a: A): void { +// <|let { /*START PREFIX*/foo: [|fooRENAME|] } = a;|> +// /*RENAME*/[|fooRENAME|] = "newString"; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringDeclarationInFor.baseline.jsonc b/tests/baselines/reference/renameDestructuringDeclarationInFor.baseline.jsonc new file mode 100644 index 0000000000000..f7a7994d26fc5 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringDeclarationInFor.baseline.jsonc @@ -0,0 +1,65 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInFor.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (<|let { [|property1RENAME|]: p2 } = elems[0]|>; p2 < 100; p2++) { +// } +// for (<|let { [|property1RENAME|]: property1/*END SUFFIX*/ } = elems[0]|>; p2 < 100; p2++) { +// property1 = p2; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInFor.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (<|let { /*RENAME*/[|property1RENAME|]: p2 } = elems[0]|>; p2 < 100; p2++) { +// } +// for (<|let { [|property1RENAME|]: property1/*END SUFFIX*/ } = elems[0]|>; p2 < 100; p2++) { +// property1 = p2; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInFor.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (let { property1: p2 } = elems[0]; p2 < 100; p2++) { +// } +// for (<|let { /*START PREFIX*/property1: /*RENAME*/[|property1RENAME|] } = elems[0]|>; p2 < 100; p2++) { +// [|property1RENAME|] = p2; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInFor.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// var p2: number, property1: number; +// for (let { property1: p2 } = elems[0]; p2 < 100; p2++) { +// } +// for (<|let { /*START PREFIX*/property1: [|property1RENAME|] } = elems[0]|>; p2 < 100; p2++) { +// /*RENAME*/[|property1RENAME|] = p2; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringDeclarationInForOf.baseline.jsonc b/tests/baselines/reference/renameDestructuringDeclarationInForOf.baseline.jsonc new file mode 100644 index 0000000000000..6cdc2a36e9ff5 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringDeclarationInForOf.baseline.jsonc @@ -0,0 +1,61 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// for (<|let { [|property1RENAME|]: property1/*END SUFFIX*/ } of elems|>) { +// property1++; +// } +// for (<|let { [|property1RENAME|]: p2 } of elems|>) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// var elems: I[]; +// +// for (<|let { [|property1RENAME|]: property1/*END SUFFIX*/ } of elems|>) { +// property1++; +// } +// for (<|let { /*RENAME*/[|property1RENAME|]: p2 } of elems|>) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// for (<|let { /*START PREFIX*/property1: /*RENAME*/[|property1RENAME|] } of elems|>) { +// [|property1RENAME|]++; +// } +// for (let { property1: p2 } of elems) { +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts === +// interface I { +// property1: number; +// property2: string; +// } +// var elems: I[]; +// +// for (<|let { /*START PREFIX*/property1: [|property1RENAME|] } of elems|>) { +// /*RENAME*/[|property1RENAME|]++; +// } +// for (let { property1: p2 } of elems) { +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringFunctionParameter.baseline.jsonc b/tests/baselines/reference/renameDestructuringFunctionParameter.baseline.jsonc new file mode 100644 index 0000000000000..bd3ed2c1d9f52 --- /dev/null +++ b/tests/baselines/reference/renameDestructuringFunctionParameter.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringFunctionParameter.ts === +// function f(<|{/*START PREFIX*/a: /*RENAME*/[|aRENAME|]}: {a}|>) { +// f({/*START PREFIX*/a: [|aRENAME|]}); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringFunctionParameter.ts === +// function f(<|{/*START PREFIX*/a: [|aRENAME|]}: {a}|>) { +// f({/*START PREFIX*/a: /*RENAME*/[|aRENAME|]}); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringFunctionParameter.ts === +// function f(<|{[|aRENAME|]: a/*END SUFFIX*/}: {/*RENAME*/[|aRENAME|]}|>) { +// f({[|aRENAME|]: a/*END SUFFIX*/}); +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameDestructuringNestedBindingElement.baseline.jsonc b/tests/baselines/reference/renameDestructuringNestedBindingElement.baseline.jsonc new file mode 100644 index 0000000000000..c1d07c7790c5c --- /dev/null +++ b/tests/baselines/reference/renameDestructuringNestedBindingElement.baseline.jsonc @@ -0,0 +1,73 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringNestedBindingElement.ts === +// interface MultiRobot { +// name: string; +// skills: { +// /*RENAME*/<|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// for (<|let { skills: {[|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// console.log(primaryA); +// } +// for (<|let { skills: {[|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// console.log(primary); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringNestedBindingElement.ts === +// interface MultiRobot { +// name: string; +// skills: { +// <|[|primaryRENAME|]: string;|> +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// for (<|let { skills: {/*RENAME*/[|primaryRENAME|]: primaryA, secondary: secondaryA } } of multiRobots|>) { +// console.log(primaryA); +// } +// for (<|let { skills: {[|primaryRENAME|]: primary/*END SUFFIX*/, secondary } } of multiRobots|>) { +// console.log(primary); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringNestedBindingElement.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// for (let { skills: {primary: primaryA, secondary: secondaryA } } of multiRobots) { +// console.log(primaryA); +// } +// for (<|let { skills: {/*START PREFIX*/primary: /*RENAME*/[|primaryRENAME|], secondary } } of multiRobots|>) { +// console.log([|primaryRENAME|]); +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameDestructuringNestedBindingElement.ts === +// interface MultiRobot { +// name: string; +// skills: { +// primary: string; +// secondary: string; +// }; +// } +// let multiRobots: MultiRobot[]; +// for (let { skills: {primary: primaryA, secondary: secondaryA } } of multiRobots) { +// console.log(primaryA); +// } +// for (<|let { skills: {/*START PREFIX*/primary: [|primaryRENAME|], secondary } } of multiRobots|>) { +// console.log(/*RENAME*/[|primaryRENAME|]); +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameExportCrash.baseline b/tests/baselines/reference/renameExportCrash.baseline deleted file mode 100644 index 6760dfe1a8ff0..0000000000000 --- a/tests/baselines/reference/renameExportCrash.baseline +++ /dev/null @@ -1,5 +0,0 @@ -/*====== /tests/cases/fourslash/Foo.js ======*/ - -let RENAME; -module.exports = [|RENAME|]; -exports["foo"] = RENAME; diff --git a/tests/baselines/reference/renameExportCrash.baseline.jsonc b/tests/baselines/reference/renameExportCrash.baseline.jsonc new file mode 100644 index 0000000000000..cc735a520bd0b --- /dev/null +++ b/tests/baselines/reference/renameExportCrash.baseline.jsonc @@ -0,0 +1,5 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/Foo.js === +// <|let [|aRENAME|];|> +// <|module.exports = /*RENAME*/[|aRENAME|];|> +// <|exports["foo"] = [|aRENAME|];|> \ No newline at end of file diff --git a/tests/baselines/reference/renameExportSpecifier.baseline b/tests/baselines/reference/renameExportSpecifier.baseline deleted file mode 100644 index f0a3a28f3c94a..0000000000000 --- a/tests/baselines/reference/renameExportSpecifier.baseline +++ /dev/null @@ -1,9 +0,0 @@ -/*====== /tests/cases/fourslash/a.ts ======*/ - -const name = {}; -export { name as [|RENAME|] }; - -/*====== /tests/cases/fourslash/b.ts ======*/ - -import { RENAME } from './a'; -const x = RENAME.toString(); diff --git a/tests/baselines/reference/renameExportSpecifier.baseline.jsonc b/tests/baselines/reference/renameExportSpecifier.baseline.jsonc new file mode 100644 index 0000000000000..23a983550d53e --- /dev/null +++ b/tests/baselines/reference/renameExportSpecifier.baseline.jsonc @@ -0,0 +1,10 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /tests/cases/fourslash/a.ts === +// const name = {}; +// <|export { name as [|nameRENAME|]/*RENAME*/ };|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|nameRENAME|] } from './a';|> +// const x = [|nameRENAME|].toString(); \ No newline at end of file diff --git a/tests/baselines/reference/renameExportSpecifier2.baseline b/tests/baselines/reference/renameExportSpecifier2.baseline deleted file mode 100644 index 9f20320696f35..0000000000000 --- a/tests/baselines/reference/renameExportSpecifier2.baseline +++ /dev/null @@ -1,9 +0,0 @@ -/*====== /tests/cases/fourslash/a.ts ======*/ - -const RENAME = {}; -export { [|RENAME|] }; - -/*====== /tests/cases/fourslash/b.ts ======*/ - -import { RENAME } from './a'; -const x = RENAME.toString(); diff --git a/tests/baselines/reference/renameExportSpecifier2.baseline.jsonc b/tests/baselines/reference/renameExportSpecifier2.baseline.jsonc new file mode 100644 index 0000000000000..69b99cf8278c1 --- /dev/null +++ b/tests/baselines/reference/renameExportSpecifier2.baseline.jsonc @@ -0,0 +1,10 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: false + +// === /tests/cases/fourslash/a.ts === +// <|const [|nameRENAME|] = {};|> +// <|export { [|nameRENAME|]/*RENAME*/ };|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|nameRENAME|] } from './a';|> +// const x = [|nameRENAME|].toString(); \ No newline at end of file diff --git a/tests/baselines/reference/renameForDefaultExport01.baseline.jsonc b/tests/baselines/reference/renameForDefaultExport01.baseline.jsonc new file mode 100644 index 0000000000000..94eb9c2c58efb --- /dev/null +++ b/tests/baselines/reference/renameForDefaultExport01.baseline.jsonc @@ -0,0 +1,45 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport01.ts === +// <|export default class /*RENAME*/[|DefaultExportedClassRENAME|] { +// }|> +// /* +// * Commenting [|DefaultExportedClassRENAME|] +// */ +// +// var x: [|DefaultExportedClassRENAME|]; +// +// var y = new [|DefaultExportedClassRENAME|]; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport01.ts === +// <|export default class [|DefaultExportedClassRENAME|] { +// }|> +// /* +// * Commenting [|DefaultExportedClassRENAME|] +// */ +// +// var x: /*RENAME*/[|DefaultExportedClassRENAME|]; +// +// var y = new [|DefaultExportedClassRENAME|]; + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport01.ts === +// <|export default class [|DefaultExportedClassRENAME|] { +// }|> +// /* +// * Commenting [|DefaultExportedClassRENAME|] +// */ +// +// var x: [|DefaultExportedClassRENAME|]; +// +// var y = new /*RENAME*/[|DefaultExportedClassRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameForDefaultExport02.baseline.jsonc b/tests/baselines/reference/renameForDefaultExport02.baseline.jsonc new file mode 100644 index 0000000000000..a0d9378e0893f --- /dev/null +++ b/tests/baselines/reference/renameForDefaultExport02.baseline.jsonc @@ -0,0 +1,65 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport02.ts === +// <|export default function /*RENAME*/[|DefaultExportedFunctionRENAME|]() { +// return [|DefaultExportedFunctionRENAME|] +// }|> +// /** +// * Commenting [|DefaultExportedFunctionRENAME|] +// */ +// +// var x: typeof [|DefaultExportedFunctionRENAME|]; +// +// var y = [|DefaultExportedFunctionRENAME|](); + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport02.ts === +// <|export default function [|DefaultExportedFunctionRENAME|]() { +// return /*RENAME*/[|DefaultExportedFunctionRENAME|] +// }|> +// /** +// * Commenting [|DefaultExportedFunctionRENAME|] +// */ +// +// var x: typeof [|DefaultExportedFunctionRENAME|]; +// +// var y = [|DefaultExportedFunctionRENAME|](); + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport02.ts === +// <|export default function [|DefaultExportedFunctionRENAME|]() { +// return [|DefaultExportedFunctionRENAME|] +// }|> +// /** +// * Commenting [|DefaultExportedFunctionRENAME|] +// */ +// +// var x: typeof /*RENAME*/[|DefaultExportedFunctionRENAME|]; +// +// var y = [|DefaultExportedFunctionRENAME|](); + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport02.ts === +// <|export default function [|DefaultExportedFunctionRENAME|]() { +// return [|DefaultExportedFunctionRENAME|] +// }|> +// /** +// * Commenting [|DefaultExportedFunctionRENAME|] +// */ +// +// var x: typeof [|DefaultExportedFunctionRENAME|]; +// +// var y = /*RENAME*/[|DefaultExportedFunctionRENAME|](); \ No newline at end of file diff --git a/tests/baselines/reference/renameForDefaultExport03.baseline.jsonc b/tests/baselines/reference/renameForDefaultExport03.baseline.jsonc new file mode 100644 index 0000000000000..0833e4ee58003 --- /dev/null +++ b/tests/baselines/reference/renameForDefaultExport03.baseline.jsonc @@ -0,0 +1,112 @@ +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport03.ts === +// <|function /*RENAME*/[|fRENAME|]() { +// return 100; +// }|> +// +// <|export default [|fRENAME|];|> +// +// var x: typeof [|fRENAME|]; +// +// var y = [|fRENAME|](); +// +// /** +// * Commenting [|fRENAME|] +// */ +// <|namespace [|fRENAME|] { +// var local = 100; +// }|> + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport03.ts === +// <|function [|fRENAME|]() { +// return 100; +// }|> +// +// <|export default /*RENAME*/[|fRENAME|];|> +// +// var x: typeof [|fRENAME|]; +// +// var y = [|fRENAME|](); +// +// /** +// * Commenting [|fRENAME|] +// */ +// <|namespace [|fRENAME|] { +// var local = 100; +// }|> + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport03.ts === +// <|function [|fRENAME|]() { +// return 100; +// }|> +// +// <|export default [|fRENAME|];|> +// +// var x: typeof /*RENAME*/[|fRENAME|]; +// +// var y = [|fRENAME|](); +// +// /** +// * Commenting [|fRENAME|] +// */ +// <|namespace [|fRENAME|] { +// var local = 100; +// }|> + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport03.ts === +// <|function [|fRENAME|]() { +// return 100; +// }|> +// +// <|export default [|fRENAME|];|> +// +// var x: typeof [|fRENAME|]; +// +// var y = /*RENAME*/[|fRENAME|](); +// +// /** +// * Commenting [|fRENAME|] +// */ +// <|namespace [|fRENAME|] { +// var local = 100; +// }|> + + + +// === findRenameLocations === +// @findInComments: true + +// === /tests/cases/fourslash/renameForDefaultExport03.ts === +// <|function [|fRENAME|]() { +// return 100; +// }|> +// +// <|export default [|fRENAME|];|> +// +// var x: typeof [|fRENAME|]; +// +// var y = [|fRENAME|](); +// +// /** +// * Commenting [|fRENAME|] +// */ +// <|namespace /*RENAME*/[|fRENAME|] { +// var local = 100; +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameForStringLiteral.baseline b/tests/baselines/reference/renameForStringLiteral.baseline deleted file mode 100644 index 9e915526960da..0000000000000 --- a/tests/baselines/reference/renameForStringLiteral.baseline +++ /dev/null @@ -1,11 +0,0 @@ -/*====== /a.ts ======*/ - -interface Foo { - property: "RENAME"; -} -/** - * @type {{ property: "foo"}} - */ -const obj: Foo = { - property: "RENAME", -} diff --git a/tests/baselines/reference/renameForStringLiteral.baseline.jsonc b/tests/baselines/reference/renameForStringLiteral.baseline.jsonc new file mode 100644 index 0000000000000..1c5e395f4e598 --- /dev/null +++ b/tests/baselines/reference/renameForStringLiteral.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /a.ts === +// interface Foo { +// property: /*RENAME*/"[|fooRENAME|]"; +// } +// /** +// * @type {{ property: "foo"}} +// */ +// const obj: Foo = { +// property: "[|fooRENAME|]", +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameFunctionParameter1.baseline b/tests/baselines/reference/renameFunctionParameter1.baseline deleted file mode 100644 index 796e07862e2c1..0000000000000 --- a/tests/baselines/reference/renameFunctionParameter1.baseline +++ /dev/null @@ -1,10 +0,0 @@ -/*====== /tests/cases/fourslash/renameFunctionParameter1.ts ======*/ - -function Foo() { - /** - * @param {number} RENAME - */ - this.foo = function foo([|RENAME|]) { - return RENAME; - } -} diff --git a/tests/baselines/reference/renameFunctionParameter1.baseline.jsonc b/tests/baselines/reference/renameFunctionParameter1.baseline.jsonc new file mode 100644 index 0000000000000..203aa54cec41b --- /dev/null +++ b/tests/baselines/reference/renameFunctionParameter1.baseline.jsonc @@ -0,0 +1,10 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameFunctionParameter1.ts === +// function Foo() { +// /** +// * @param {number} [|pRENAME|] +// */ +// this.foo = function foo([|pRENAME|]/*RENAME*/) { +// return [|pRENAME|]; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameFunctionParameter2.baseline b/tests/baselines/reference/renameFunctionParameter2.baseline deleted file mode 100644 index efa65398688f0..0000000000000 --- a/tests/baselines/reference/renameFunctionParameter2.baseline +++ /dev/null @@ -1,8 +0,0 @@ -/*====== /tests/cases/fourslash/renameFunctionParameter2.ts ======*/ - -/** - * @param {number} RENAME - */ -const foo = function foo([|RENAME|]) { - return RENAME; -} diff --git a/tests/baselines/reference/renameFunctionParameter2.baseline.jsonc b/tests/baselines/reference/renameFunctionParameter2.baseline.jsonc new file mode 100644 index 0000000000000..dad344ab9bc8d --- /dev/null +++ b/tests/baselines/reference/renameFunctionParameter2.baseline.jsonc @@ -0,0 +1,8 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameFunctionParameter2.ts === +// /** +// * @param {number} [|pRENAME|] +// */ +// const foo = function foo([|pRENAME|]/*RENAME*/) { +// return [|pRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameImportAndExport.baseline.jsonc b/tests/baselines/reference/renameImportAndExport.baseline.jsonc new file mode 100644 index 0000000000000..9962f1cbcbbdd --- /dev/null +++ b/tests/baselines/reference/renameImportAndExport.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportAndExport.ts === +// <|import /*RENAME*/[|aRENAME|] from "module";|> +// <|export { [|aRENAME|] as a/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportAndExport.ts === +// import a from "module"; +// <|export { /*START PREFIX*/a as /*RENAME*/[|aRENAME|] };|> \ No newline at end of file diff --git a/tests/baselines/reference/renameImportAndExportInDiffFiles.baseline.jsonc b/tests/baselines/reference/renameImportAndExportInDiffFiles.baseline.jsonc index b4e57b572a3a4..3a3284c0e50c8 100644 --- a/tests/baselines/reference/renameImportAndExportInDiffFiles.baseline.jsonc +++ b/tests/baselines/reference/renameImportAndExportInDiffFiles.baseline.jsonc @@ -1,512 +1,381 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export var /*FIND ALL REFS*/[|{| defId: 0, isDefinition: true |}a|];|> + // === /tests/cases/fourslash/b.ts === -// import { [|a|] } from './a'; -// export { [|a|] }; +// <|import { [|{| defId: 1, isWriteAccess: true |}a|] } from './a';|> +// <|export { [|{| defId: 1, isWriteAccess: true |}a|] };|> -// === /tests/cases/fourslash/a.ts === -// export var /*FIND ALL REFS*/[|a|]; + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export var /*FIND ALL REFS*/[|{| defId: 0 |}a|];|> + + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 1 |}a|] } from './a';|> + // export { a }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var a: any", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var a: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) var a: any\nimport a", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 25, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var a: any\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { /*FIND ALL REFS*/[|a|] } from './a'; -// export { [|a|] }; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] } from './a';|> +// <|export { [|{| defId: 0, isWriteAccess: true |}a|] };|> // === /tests/cases/fourslash/a.ts === -// export var [|a|]; +// <|export var [|{| defId: 1 |}a|];|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}a|] } from './a';|> + // export { a }; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) var a: any\nimport a", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 25, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === /tests/cases/fourslash/a.ts === + // <|export var [|{| defId: 1 |}a|];|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var a: any\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var a: any", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var a: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// import { [|a|] } from './a'; -// export { /*FIND ALL REFS*/[|a|] }; +// <|import { [|{| defId: 0, isWriteAccess: true |}a|] } from './a';|> +// <|export { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}a|] };|> // === /tests/cases/fourslash/a.ts === -// export var [|a|]; +// <|export var [|{| defId: 1 |}a|];|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) var a: any\nimport a", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 34, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 25, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|import { [|{| defId: 0 |}a|] } from './a';|> + // export { /*FIND ALL REFS*/a }; + + // === /tests/cases/fourslash/a.ts === + // <|export var [|{| defId: 1 |}a|];|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) var a: any\nimport a", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "var", - "name": "var a: any", - "textSpan": { - "start": 11, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 11, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var a: any", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export var /*RENAME*/[|aRENAME|];|> + +// === /tests/cases/fourslash/b.ts === +// <|import { [|aRENAME|] } from './a';|> +// <|export { [|aRENAME|] as a/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|import { /*START PREFIX*/a as /*RENAME*/[|aRENAME|] } from './a';|> +// <|export { [|aRENAME|] as a/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// import { a } from './a'; +// <|export { /*START PREFIX*/a as /*RENAME*/[|aRENAME|] };|> \ No newline at end of file diff --git a/tests/baselines/reference/renameImportAndShorthand.baseline.jsonc b/tests/baselines/reference/renameImportAndShorthand.baseline.jsonc new file mode 100644 index 0000000000000..99120e554a562 --- /dev/null +++ b/tests/baselines/reference/renameImportAndShorthand.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportAndShorthand.ts === +// <|import /*RENAME*/[|fooRENAME|] from 'bar';|> +// const bar = { /*START PREFIX*/foo: [|fooRENAME|] }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportAndShorthand.ts === +// <|import [|fooRENAME|] from 'bar';|> +// const bar = { /*START PREFIX*/foo: /*RENAME*/[|fooRENAME|] }; \ No newline at end of file diff --git a/tests/baselines/reference/renameImportNamespaceAndShorthand.baseline.jsonc b/tests/baselines/reference/renameImportNamespaceAndShorthand.baseline.jsonc new file mode 100644 index 0000000000000..ff291c03e774e --- /dev/null +++ b/tests/baselines/reference/renameImportNamespaceAndShorthand.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportNamespaceAndShorthand.ts === +// <|import * as /*RENAME*/[|fooRENAME|] from 'bar';|> +// const bar = { /*START PREFIX*/foo: [|fooRENAME|] }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportNamespaceAndShorthand.ts === +// <|import * as [|fooRENAME|] from 'bar';|> +// const bar = { /*START PREFIX*/foo: /*RENAME*/[|fooRENAME|] }; \ No newline at end of file diff --git a/tests/baselines/reference/renameImportOfExportEquals.baseline.jsonc b/tests/baselines/reference/renameImportOfExportEquals.baseline.jsonc index 6f72fd60a831e..9ce36eca86e6c 100644 --- a/tests/baselines/reference/renameImportOfExportEquals.baseline.jsonc +++ b/tests/baselines/reference/renameImportOfExportEquals.baseline.jsonc @@ -1,774 +1,508 @@ +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals.ts === -// declare namespace /*FIND ALL REFS*/[|N|] { +// <|declare namespace /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}N|] { // export var x: number; -// } +// }|> // declare module "mod" { -// export = [|N|]; +// <|export = [|{| defId: 0 |}N|];|> // } // declare module "a" { -// import * as [|N|] from "mod"; -// export { [|N|] }; // Renaming N here would rename +// <|import * as [|{| defId: 1, isWriteAccess: true |}N|] from "mod";|> +// <|export { [|{| defId: 1, isWriteAccess: true |}N|] };|> // Renaming N here would rename // } // declare module "b" { -// import { [|N|] } from "a"; -// export const y: typeof [|N|].x; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "module", - "name": "namespace N", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 77, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|import { [|{| defId: 2, isWriteAccess: true |}N|] } from "a";|> +// export const y: typeof [|{| defId: 2 |}N|].x; +// } + + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals.ts === + // <|declare namespace /*FIND ALL REFS*/[|{| defId: 0 |}N|] { + // export var x: number; + // }|> + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // <|import * as [|{| defId: 1 |}N|] from "mod";|> + // export { N }; // Renaming N here would rename + // } + // declare module "b" { + // <|import { [|{| defId: 2 |}N|] } from "a";|> + // export const y: typeof N.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace N", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 128, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 116, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 116, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 155, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 146, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 228, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 219, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 228, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 219, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals.ts === -// declare namespace [|N|] { +// <|declare namespace [|{| defId: 1, isWriteAccess: true |}N|] { // export var x: number; -// } +// }|> // declare module "mod" { -// export = [|N|]; +// <|export = [|{| defId: 1 |}N|];|> // } // declare module "a" { -// import * as /*FIND ALL REFS*/[|N|] from "mod"; -// export { [|N|] }; // Renaming N here would rename +// <|import * as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}N|] from "mod";|> +// <|export { [|{| defId: 0, isWriteAccess: true |}N|] };|> // Renaming N here would rename // } // declare module "b" { -// import { [|N|] } from "a"; -// export const y: typeof [|N|].x; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 128, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 116, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 116, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 155, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 146, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } +// <|import { [|{| defId: 2, isWriteAccess: true |}N|] } from "a";|> +// export const y: typeof [|{| defId: 2 |}N|].x; +// } + + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals.ts === + // <|declare namespace [|{| defId: 1 |}N|] { + // export var x: number; + // }|> + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // <|import * as /*FIND ALL REFS*/[|{| defId: 0 |}N|] from "mod";|> + // export { N }; // Renaming N here would rename + // } + // declare module "b" { + // <|import { [|{| defId: 2 |}N|] } from "a";|> + // export const y: typeof N.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "module", - "name": "namespace N", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 77, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace N", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 228, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 219, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 228, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 219, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals.ts === -// declare namespace [|N|] { +// <|declare namespace [|{| defId: 2, isWriteAccess: true |}N|] { // export var x: number; -// } +// }|> // declare module "mod" { -// export = [|N|]; +// <|export = [|{| defId: 2 |}N|];|> // } // declare module "a" { -// import * as [|N|] from "mod"; -// export { [|N|] }; // Renaming N here would rename +// <|import * as [|{| defId: 1, isWriteAccess: true |}N|] from "mod";|> +// <|export { [|{| defId: 1, isWriteAccess: true |}N|] };|> // Renaming N here would rename // } // declare module "b" { -// import { /*FIND ALL REFS*/[|N|] } from "a"; -// export const y: typeof [|N|].x; -// } - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 228, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 219, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 228, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 219, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 269, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}N|] } from "a";|> +// export const y: typeof [|{| defId: 0 |}N|].x; +// } + + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals.ts === + // <|declare namespace [|{| defId: 2 |}N|] { + // export var x: number; + // }|> + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // <|import * as [|{| defId: 1 |}N|] from "mod";|> + // export { N }; // Renaming N here would rename + // } + // declare module "b" { + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}N|] } from "a";|> + // export const y: typeof N.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "alias", - "name": "(alias) namespace N\nimport N", - "textSpan": { - "start": 128, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 116, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 116, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 155, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 146, - "length": 13 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace N\nimport N", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "module", - "name": "namespace N", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 77, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace N", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals.ts === // declare namespace N { -// export var /*FIND ALL REFS*/[|x|]: number; +// <|export var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}x|]: number;|> // } // declare module "mod" { // export = N; @@ -782,80 +516,215 @@ // export const y: typeof N.[|x|]; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "kind": "var", - "name": "var N.x: number", - "textSpan": { - "start": 37, - "length": 1 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 26, - "length": 21 - } - }, - "references": [ - { - "textSpan": { - "start": 37, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "contextSpan": { - "start": 26, - "length": 21 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 271, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals.ts === + // declare namespace N { + // <|export var /*FIND ALL REFS*/[|x|]: number;|> + // } + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // import * as N from "mod"; + // export { N }; // Renaming N here would rename + // } + // declare module "b" { + // import { N } from "a"; + // export const y: typeof N.x; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var N.x: number", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// <|declare namespace /*RENAME*/[|NRENAME|] { +// export var x: number; +// }|> +// declare module "mod" { +// <|export = [|NRENAME|];|> +// } +// declare module "a" { +// <|import * as [|NRENAME|] from "mod";|> +// <|export { [|NRENAME|] as N/*END SUFFIX*/ };|> // Renaming N here would rename +// } +// declare module "b" { +// import { N } from "a"; +// export const y: typeof N.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// <|declare namespace [|NRENAME|] { +// export var x: number; +// }|> +// declare module "mod" { +// <|export = /*RENAME*/[|NRENAME|];|> +// } +// declare module "a" { +// <|import * as [|NRENAME|] from "mod";|> +// <|export { [|NRENAME|] as N/*END SUFFIX*/ };|> // Renaming N here would rename +// } +// declare module "b" { +// import { N } from "a"; +// export const y: typeof N.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// <|import * as /*RENAME*/[|NRENAME|] from "mod";|> +// <|export { [|NRENAME|] as N/*END SUFFIX*/ };|> // Renaming N here would rename +// } +// declare module "b" { +// import { N } from "a"; +// export const y: typeof N.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as N from "mod"; +// <|export { /*START PREFIX*/N as /*RENAME*/[|NRENAME|] };|> // Renaming N here would rename +// } +// declare module "b" { +// <|import { [|NRENAME|] } from "a";|> +// export const y: typeof [|NRENAME|].x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as N from "mod"; +// export { N }; // Renaming N here would rename +// } +// declare module "b" { +// <|import { /*START PREFIX*/N as /*RENAME*/[|NRENAME|] } from "a";|> +// export const y: typeof [|NRENAME|].x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as N from "mod"; +// export { N }; // Renaming N here would rename +// } +// declare module "b" { +// <|import { /*START PREFIX*/N as [|NRENAME|] } from "a";|> +// export const y: typeof /*RENAME*/[|NRENAME|].x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// <|export var /*RENAME*/[|xRENAME|]: number;|> +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as N from "mod"; +// export { N }; // Renaming N here would rename +// } +// declare module "b" { +// import { N } from "a"; +// export const y: typeof N.[|xRENAME|]; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals.ts === +// declare namespace N { +// <|export var [|xRENAME|]: number;|> +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as N from "mod"; +// export { N }; // Renaming N here would rename +// } +// declare module "b" { +// import { N } from "a"; +// export const y: typeof N./*RENAME*/[|xRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameImportOfExportEquals2.baseline.jsonc b/tests/baselines/reference/renameImportOfExportEquals2.baseline.jsonc index ddc77eecb9b2f..70741573d4a1d 100644 --- a/tests/baselines/reference/renameImportOfExportEquals2.baseline.jsonc +++ b/tests/baselines/reference/renameImportOfExportEquals2.baseline.jsonc @@ -1,350 +1,224 @@ +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === -// declare namespace /*FIND ALL REFS*/[|N|] { +// <|declare namespace /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}N|] { // export var x: number; -// } +// }|> // declare module "mod" { -// export = [|N|]; +// <|export = [|{| defId: 0 |}N|];|> // } // declare module "a" { -// import * as [|O|] from "mod"; -// export { [|O|] as [|P|] }; // Renaming N here would rename +// <|import * as [|{| defId: 1, isWriteAccess: true |}O|] from "mod";|> +// <|<|export { [|{| contextId: 3, defId: 1 |}O|] as [|{| contextId: 4, defId: 2, isWriteAccess: true |}P|] };|>|> // Renaming N here would rename // } // declare module "b" { -// import { [|P|] as [|Q|] } from "a"; -// export const y: typeof [|Q|].x; +// <|<|import { [|{| contextId: 5, defId: 2 |}P|] as [|{| contextId: 6, defId: 3, isWriteAccess: true |}Q|] } from "a";|>|> +// export const y: typeof [|{| defId: 3 |}Q|].x; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "module", - "name": "namespace N", - "textSpan": { - "start": 18, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "N", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 49 - } - }, - "references": [ - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 0, - "length": 49 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 86, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 77, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === + // <|declare namespace /*FIND ALL REFS*/[|{| defId: 0 |}N|] { + // export var x: number; + // }|> + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // <|import * as [|{| defId: 1 |}O|] from "mod";|> + // <|export { O as [|{| defId: 2 |}P|] };|> // Renaming N here would rename + // } + // declare module "b" { + // <|import { P as [|{| defId: 3 |}Q|] } from "a";|> + // export const y: typeof Q.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace N", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "N", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace O\nimport O", - "textSpan": { - "start": 128, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "O", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "O", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 116, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 116, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 155, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 146, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace O\nimport O", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "O", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "O", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace P\nexport P", - "textSpan": { - "start": 160, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 146, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 146, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 233, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace P\nexport P", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace Q\nimport Q", - "textSpan": { - "start": 238, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 224, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 238, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 279, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace Q\nimport Q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === // declare namespace N { // export var x: number; @@ -353,286 +227,197 @@ // export = N; // } // declare module "a" { -// import * as /*FIND ALL REFS*/[|O|] from "mod"; -// export { [|O|] as [|P|] }; // Renaming N here would rename +// <|import * as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}O|] from "mod";|> +// <|<|export { [|{| contextId: 1, defId: 0 |}O|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}P|] };|>|> // Renaming N here would rename // } // declare module "b" { -// import { [|P|] as [|Q|] } from "a"; -// export const y: typeof [|Q|].x; +// <|<|import { [|{| contextId: 3, defId: 1 |}P|] as [|{| contextId: 4, defId: 2, isWriteAccess: true |}Q|] } from "a";|>|> +// export const y: typeof [|{| defId: 2 |}Q|].x; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace O\nimport O", - "textSpan": { - "start": 128, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "O", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "O", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 116, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 128, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 116, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 155, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 146, - "length": 18 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === + // declare namespace N { + // export var x: number; + // } + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // <|import * as /*FIND ALL REFS*/[|{| defId: 0 |}O|] from "mod";|> + // <|export { O as [|{| defId: 1 |}P|] };|> // Renaming N here would rename + // } + // declare module "b" { + // <|import { P as [|{| defId: 2 |}Q|] } from "a";|> + // export const y: typeof Q.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace O\nimport O", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "O", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "O", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace P\nexport P", - "textSpan": { - "start": 160, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 146, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 146, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 233, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace P\nexport P", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace Q\nimport Q", - "textSpan": { - "start": 238, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 224, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 238, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 279, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace Q\nimport Q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === // declare namespace N { // export var x: number; @@ -642,194 +427,143 @@ // } // declare module "a" { // import * as O from "mod"; -// export { O as /*FIND ALL REFS*/[|P|] }; // Renaming N here would rename +// <|export { O as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}P|] };|> // Renaming N here would rename // } // declare module "b" { -// import { [|P|] as [|Q|] } from "a"; -// export const y: typeof [|Q|].x; +// <|<|import { [|{| contextId: 1, defId: 0 |}P|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}Q|] } from "a";|>|> +// export const y: typeof [|{| defId: 1 |}Q|].x; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace P\nexport P", - "textSpan": { - "start": 160, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "P", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 146, - "length": 18 - } - }, - "references": [ - { - "textSpan": { - "start": 160, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 146, - "length": 18 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 233, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === + // declare namespace N { + // export var x: number; + // } + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // import * as O from "mod"; + // <|export { O as /*FIND ALL REFS*/[|{| defId: 0 |}P|] };|> // Renaming N here would rename + // } + // declare module "b" { + // <|import { P as [|{| defId: 1 |}Q|] } from "a";|> + // export const y: typeof Q.x; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace P\nexport P", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "P", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace Q\nimport Q", - "textSpan": { - "start": 238, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 224, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 238, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 279, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace Q\nimport Q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === // declare namespace N { // export var x: number; @@ -842,96 +576,231 @@ // export { O as P }; // Renaming N here would rename // } // declare module "b" { -// import { P as /*FIND ALL REFS*/[|Q|] } from "a"; +// <|import { P as /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Q|] } from "a";|> // export const y: typeof [|Q|].x; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "kind": "alias", - "name": "(alias) namespace Q\nimport Q", - "textSpan": { - "start": 238, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Q", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 224, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 238, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "contextSpan": { - "start": 224, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 279, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfExportEquals2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfExportEquals2.ts === + // declare namespace N { + // export var x: number; + // } + // declare module "mod" { + // export = N; + // } + // declare module "a" { + // import * as O from "mod"; + // export { O as P }; // Renaming N here would rename + // } + // declare module "b" { + // <|import { P as /*FIND ALL REFS*/[|Q|] } from "a";|> + // export const y: typeof Q.x; + // } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace Q\nimport Q", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Q", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// <|declare namespace /*RENAME*/[|NRENAME|] { +// export var x: number; +// }|> +// declare module "mod" { +// <|export = [|NRENAME|];|> +// } +// declare module "a" { +// import * as O from "mod"; +// export { O as P }; // Renaming N here would rename +// } +// declare module "b" { +// import { P as Q } from "a"; +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// <|declare namespace [|NRENAME|] { +// export var x: number; +// }|> +// declare module "mod" { +// <|export = /*RENAME*/[|NRENAME|];|> +// } +// declare module "a" { +// import * as O from "mod"; +// export { O as P }; // Renaming N here would rename +// } +// declare module "b" { +// import { P as Q } from "a"; +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// <|import * as /*RENAME*/[|ORENAME|] from "mod";|> +// <|export { [|ORENAME|] as P };|> // Renaming N here would rename +// } +// declare module "b" { +// import { P as Q } from "a"; +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// <|import * as [|ORENAME|] from "mod";|> +// <|export { /*RENAME*/[|ORENAME|] as P };|> // Renaming N here would rename +// } +// declare module "b" { +// import { P as Q } from "a"; +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as O from "mod"; +// <|export { O as /*RENAME*/[|PRENAME|] };|> // Renaming N here would rename +// } +// declare module "b" { +// <|import { [|PRENAME|] as Q } from "a";|> +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as O from "mod"; +// <|export { O as [|PRENAME|] };|> // Renaming N here would rename +// } +// declare module "b" { +// <|import { /*RENAME*/[|PRENAME|] as Q } from "a";|> +// export const y: typeof Q.x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as O from "mod"; +// export { O as P }; // Renaming N here would rename +// } +// declare module "b" { +// <|import { P as /*RENAME*/[|QRENAME|] } from "a";|> +// export const y: typeof [|QRENAME|].x; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfExportEquals2.ts === +// declare namespace N { +// export var x: number; +// } +// declare module "mod" { +// export = N; +// } +// declare module "a" { +// import * as O from "mod"; +// export { O as P }; // Renaming N here would rename +// } +// declare module "b" { +// <|import { P as [|QRENAME|] } from "a";|> +// export const y: typeof /*RENAME*/[|QRENAME|].x; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameImportOfReExport.baseline.jsonc b/tests/baselines/reference/renameImportOfReExport.baseline.jsonc index 25f969066c4d6..389241dc5f212 100644 --- a/tests/baselines/reference/renameImportOfReExport.baseline.jsonc +++ b/tests/baselines/reference/renameImportOfReExport.baseline.jsonc @@ -1,677 +1,534 @@ +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport.ts === // declare module "a" { -// export class /*FIND ALL REFS*/[|C|] {} +// <|export class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}C|] {}|> // } // declare module "b" { -// export { [|C|] } from "a"; +// <|export { [|{| defId: 1, isWriteAccess: true |}C|] } from "a";|> // } // declare module "c" { -// import { [|C|] } from "b"; -// export function f(c: [|C|]): void; +// <|import { [|{| defId: 2, isWriteAccess: true |}C|] } from "b";|> +// export function f(c: [|{| defId: 2 |}C|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 25, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 25, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport.ts === + // declare module "a" { + // <|export class /*FIND ALL REFS*/[|{| defId: 0 |}C|] {}|> + // } + // declare module "b" { + // <|export { [|{| defId: 1 |}C|] } from "a";|> + // } + // declare module "c" { + // <|import { [|{| defId: 2 |}C|] } from "b";|> + // export function f(c: C): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nexport C", - "textSpan": { - "start": 79, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 70, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nexport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 129, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 120, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 120, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 168, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport.ts === // declare module "a" { -// export class [|C|] {} +// <|export class [|{| defId: 0, isWriteAccess: true |}C|] {}|> // } // declare module "b" { -// export { /*FIND ALL REFS*/[|C|] } from "a"; +// <|export { /*FIND ALL REFS*/[|{| defId: 1, isWriteAccess: true, isDefinition: true |}C|] } from "a";|> // } // declare module "c" { -// import { [|C|] } from "b"; -// export function f(c: [|C|]): void; +// <|import { [|{| defId: 2, isWriteAccess: true |}C|] } from "b";|> +// export function f(c: [|{| defId: 2 |}C|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 25, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 25, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport.ts === + // declare module "a" { + // <|export class [|{| defId: 0 |}C|] {}|> + // } + // declare module "b" { + // <|export { /*FIND ALL REFS*/[|{| defId: 1 |}C|] } from "a";|> + // } + // declare module "c" { + // <|import { [|{| defId: 2 |}C|] } from "b";|> + // export function f(c: C): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nexport C", - "textSpan": { - "start": 79, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 70, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nexport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 129, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 120, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 120, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 168, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport.ts === // declare module "a" { -// export class [|C|] {} +// <|export class [|{| defId: 2, isWriteAccess: true |}C|] {}|> // } // declare module "b" { -// export { [|C|] } from "a"; +// <|export { [|{| defId: 1, isWriteAccess: true |}C|] } from "a";|> // } // declare module "c" { -// import { /*FIND ALL REFS*/[|C|] } from "b"; -// export function f(c: [|C|]): void; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}C|] } from "b";|> +// export function f(c: [|{| defId: 0 |}C|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nimport C", - "textSpan": { - "start": 129, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 120, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 129, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 120, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 168, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport.ts === + // declare module "a" { + // <|export class [|{| defId: 2 |}C|] {}|> + // } + // declare module "b" { + // <|export { [|{| defId: 1 |}C|] } from "a";|> + // } + // declare module "c" { + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}C|] } from "b";|> + // export function f(c: C): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nimport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "alias", - "name": "(alias) class C\nexport C", - "textSpan": { - "start": 79, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 70, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class C\nexport C", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 25, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport.ts", - "contextSpan": { - "start": 25, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport.ts === +// declare module "a" { +// <|export class /*RENAME*/[|CRENAME|] {}|> +// } +// declare module "b" { +// <|export { [|CRENAME|] as C/*END SUFFIX*/ } from "a";|> +// } +// declare module "c" { +// import { C } from "b"; +// export function f(c: C): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// <|export { /*START PREFIX*/C as /*RENAME*/[|CRENAME|] } from "a";|> +// } +// declare module "c" { +// <|import { [|CRENAME|] } from "b";|> +// export function f(c: [|CRENAME|]): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// export { C } from "a"; +// } +// declare module "c" { +// <|import { /*START PREFIX*/C as /*RENAME*/[|CRENAME|] } from "b";|> +// export function f(c: [|CRENAME|]): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// export { C } from "a"; +// } +// declare module "c" { +// <|import { /*START PREFIX*/C as [|CRENAME|] } from "b";|> +// export function f(c: /*RENAME*/[|CRENAME|]): void; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameImportOfReExport2.baseline.jsonc b/tests/baselines/reference/renameImportOfReExport2.baseline.jsonc index 412ef297a15e6..38c9e8bcd2668 100644 --- a/tests/baselines/reference/renameImportOfReExport2.baseline.jsonc +++ b/tests/baselines/reference/renameImportOfReExport2.baseline.jsonc @@ -1,598 +1,507 @@ +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport2.ts === // declare module "a" { -// export class /*FIND ALL REFS*/[|C|] {} +// <|export class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}C|] {}|> // } // declare module "b" { -// export { [|C|] as [|D|] } from "a"; +// <|<|export { [|{| contextId: 1, defId: 0 |}C|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}D|] } from "a";|>|> // } // declare module "c" { -// import { [|D|] } from "b"; -// export function f(c: [|D|]): void; +// <|import { [|{| defId: 2, isWriteAccess: true |}D|] } from "b";|> +// export function f(c: [|{| defId: 2 |}D|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "class", - "name": "class C", - "textSpan": { - "start": 38, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "C", - "kind": "className" - } - ], - "contextSpan": { - "start": 25, - "length": 17 - } - }, - "references": [ - { - "textSpan": { - "start": 38, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 25, - "length": 17 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 79, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 70, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport2.ts === + // declare module "a" { + // <|export class /*FIND ALL REFS*/[|{| defId: 0 |}C|] {}|> + // } + // declare module "b" { + // <|export { C as [|{| defId: 1 |}D|] } from "a";|> + // } + // declare module "c" { + // <|import { [|{| defId: 2 |}D|] } from "b";|> + // export function f(c: D): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class C", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nexport D", - "textSpan": { - "start": 84, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 70, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nexport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nimport D", - "textSpan": { - "start": 134, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 125, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 134, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 125, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport2.ts === // declare module "a" { // export class C {} // } // declare module "b" { -// export { C as /*FIND ALL REFS*/[|D|] } from "a"; +// <|export { C as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] } from "a";|> // } // declare module "c" { -// import { [|D|] } from "b"; -// export function f(c: [|D|]): void; +// <|import { [|{| defId: 1, isWriteAccess: true |}D|] } from "b";|> +// export function f(c: [|{| defId: 1 |}D|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nexport D", - "textSpan": { - "start": 84, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 70, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport2.ts === + // declare module "a" { + // export class C {} + // } + // declare module "b" { + // <|export { C as /*FIND ALL REFS*/[|{| defId: 0 |}D|] } from "a";|> + // } + // declare module "c" { + // <|import { [|{| defId: 1 |}D|] } from "b";|> + // export function f(c: D): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nexport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nimport D", - "textSpan": { - "start": 134, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 125, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 134, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 125, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 173, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/renameImportOfReExport2.ts === // declare module "a" { // export class C {} // } // declare module "b" { -// export { C as [|D|] } from "a"; +// <|export { C as [|{| defId: 1, isWriteAccess: true |}D|] } from "a";|> // } // declare module "c" { -// import { /*FIND ALL REFS*/[|D|] } from "b"; -// export function f(c: [|D|]): void; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}D|] } from "b";|> +// export function f(c: [|{| defId: 0 |}D|]): void; // } -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nimport D", - "textSpan": { - "start": 134, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 125, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 134, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 125, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 173, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/renameImportOfReExport2.ts === + // declare module "a" { + // export class C {} + // } + // declare module "b" { + // <|export { C as [|{| defId: 1 |}D|] } from "a";|> + // } + // declare module "c" { + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}D|] } from "b";|> + // export function f(c: D): void; + // } + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nimport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "kind": "alias", - "name": "(alias) class D\nexport D", - "textSpan": { - "start": 84, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "D", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 70, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 84, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/renameImportOfReExport2.ts", - "contextSpan": { - "start": 70, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class D\nexport D", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport2.ts === +// declare module "a" { +// <|export class /*RENAME*/[|CRENAME|] {}|> +// } +// declare module "b" { +// <|export { [|CRENAME|] as D } from "a";|> +// } +// declare module "c" { +// import { D } from "b"; +// export function f(c: D): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport2.ts === +// declare module "a" { +// <|export class [|CRENAME|] {}|> +// } +// declare module "b" { +// <|export { /*RENAME*/[|CRENAME|] as D } from "a";|> +// } +// declare module "c" { +// import { D } from "b"; +// export function f(c: D): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport2.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// <|export { C as /*RENAME*/[|DRENAME|] } from "a";|> +// } +// declare module "c" { +// <|import { [|DRENAME|] } from "b";|> +// export function f(c: [|DRENAME|]): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport2.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// export { C as D } from "a"; +// } +// declare module "c" { +// <|import { /*START PREFIX*/D as /*RENAME*/[|DRENAME|] } from "b";|> +// export function f(c: [|DRENAME|]): void; +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameImportOfReExport2.ts === +// declare module "a" { +// export class C {} +// } +// declare module "b" { +// export { C as D } from "a"; +// } +// declare module "c" { +// <|import { /*START PREFIX*/D as [|DRENAME|] } from "b";|> +// export function f(c: /*RENAME*/[|DRENAME|]): void; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameImportRequire.baseline.jsonc b/tests/baselines/reference/renameImportRequire.baseline.jsonc new file mode 100644 index 0000000000000..c70ae9af9f34d --- /dev/null +++ b/tests/baselines/reference/renameImportRequire.baseline.jsonc @@ -0,0 +1,51 @@ +// === findRenameLocations === +// === /a.ts === +// <|import /*RENAME*/[|eRENAME|] = require("mod4");|> +// [|eRENAME|]; +// a = { /*START PREFIX*/e: [|eRENAME|] }; +// <|export { [|eRENAME|] as e/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /a.ts === +// <|import [|eRENAME|] = require("mod4");|> +// /*RENAME*/[|eRENAME|]; +// a = { /*START PREFIX*/e: [|eRENAME|] }; +// <|export { [|eRENAME|] as e/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /a.ts === +// <|import [|eRENAME|] = require("mod4");|> +// [|eRENAME|]; +// a = { /*START PREFIX*/e: /*RENAME*/[|eRENAME|] }; +// <|export { [|eRENAME|] as e/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /a.ts === +// import e = require("mod4"); +// e; +// a = { e }; +// <|export { /*START PREFIX*/e as /*RENAME*/[|eRENAME|] };|> + +// === /b.ts === +// <|import { [|eRENAME|] } from "./a";|> +// <|export { [|eRENAME|] as e/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /b.ts === +// <|import { /*START PREFIX*/e as /*RENAME*/[|eRENAME|] } from "./a";|> +// <|export { [|eRENAME|] as e/*END SUFFIX*/ };|> + + + +// === findRenameLocations === +// === /b.ts === +// import { e } from "./a"; +// <|export { /*START PREFIX*/e as /*RENAME*/[|eRENAME|] };|> \ No newline at end of file diff --git a/tests/baselines/reference/renameImportSpecifierPropertyName.baseline b/tests/baselines/reference/renameImportSpecifierPropertyName.baseline deleted file mode 100644 index 495a8f635b8a5..0000000000000 --- a/tests/baselines/reference/renameImportSpecifierPropertyName.baseline +++ /dev/null @@ -1,7 +0,0 @@ -/*====== /tests/cases/fourslash/canada.ts ======*/ - -export interface [|RENAME|] {} - -/*====== /tests/cases/fourslash/dry.ts ======*/ - -import { RENAME as Ale } from './canada'; diff --git a/tests/baselines/reference/renameImportSpecifierPropertyName.baseline.jsonc b/tests/baselines/reference/renameImportSpecifierPropertyName.baseline.jsonc new file mode 100644 index 0000000000000..f5a29de896d4a --- /dev/null +++ b/tests/baselines/reference/renameImportSpecifierPropertyName.baseline.jsonc @@ -0,0 +1,6 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/canada.ts === +// <|export interface /*RENAME*/[|GingerRENAME|] {}|> + +// === /tests/cases/fourslash/dry.ts === +// <|import { [|GingerRENAME|] as Ale } from './canada';|> \ No newline at end of file diff --git a/tests/baselines/reference/renameInConfiguredProject.baseline.jsonc b/tests/baselines/reference/renameInConfiguredProject.baseline.jsonc new file mode 100644 index 0000000000000..cb1f46b99288c --- /dev/null +++ b/tests/baselines/reference/renameInConfiguredProject.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// @findInStrings: true +// @findInComments: true + +// === /tests/cases/fourslash/server/referencesForGlobals_1.ts === +// <|var /*RENAME*/[|globalNameRENAME|] = 0;|> + +// === /tests/cases/fourslash/server/referencesForGlobals_2.ts === +// var y = [|globalNameRENAME|]; + + + +// === findRenameLocations === +// @findInStrings: true +// @findInComments: true + +// === /tests/cases/fourslash/server/referencesForGlobals_1.ts === +// <|var [|globalNameRENAME|] = 0;|> + +// === /tests/cases/fourslash/server/referencesForGlobals_2.ts === +// var y = /*RENAME*/[|globalNameRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties1.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties1.baseline.jsonc new file mode 100644 index 0000000000000..8f09c30264be9 --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties1.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties1.ts === +// class class1 extends class1 { +// /*RENAME*/<|[|propNameRENAME|]: string;|> +// } +// +// var v: class1; +// v.[|propNameRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties1.ts === +// class class1 extends class1 { +// <|[|propNameRENAME|]: string;|> +// } +// +// var v: class1; +// v./*RENAME*/[|propNameRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties2.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties2.baseline.jsonc new file mode 100644 index 0000000000000..ccc9b106baf23 --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties2.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties2.ts === +// class class1 extends class1 { +// /*RENAME*/<|[|doStuffRENAME|]() { }|> +// } +// +// var v: class1; +// v.[|doStuffRENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties2.ts === +// class class1 extends class1 { +// <|[|doStuffRENAME|]() { }|> +// } +// +// var v: class1; +// v./*RENAME*/[|doStuffRENAME|](); \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties3.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties3.baseline.jsonc new file mode 100644 index 0000000000000..38fae6678004a --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties3.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties3.ts === +// interface interface1 extends interface1 { +// /*RENAME*/<|[|propNameRENAME|]: string;|> +// } +// +// var v: interface1; +// v.[|propNameRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties3.ts === +// interface interface1 extends interface1 { +// <|[|propNameRENAME|]: string;|> +// } +// +// var v: interface1; +// v./*RENAME*/[|propNameRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties4.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties4.baseline.jsonc new file mode 100644 index 0000000000000..0e777df48b2e2 --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties4.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties4.ts === +// interface interface1 extends interface1 { +// /*RENAME*/<|[|doStuffRENAME|](): string;|> +// } +// +// var v: interface1; +// v.[|doStuffRENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties4.ts === +// interface interface1 extends interface1 { +// <|[|doStuffRENAME|](): string;|> +// } +// +// var v: interface1; +// v./*RENAME*/[|doStuffRENAME|](); \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties5.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties5.baseline.jsonc new file mode 100644 index 0000000000000..e9992dfc8675a --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties5.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties5.ts === +// interface C extends D { +// propC: number; +// } +// interface D extends C { +// /*RENAME*/<|[|propDRENAME|]: string;|> +// } +// var d: D; +// d.[|propDRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties5.ts === +// interface C extends D { +// propC: number; +// } +// interface D extends C { +// <|[|propDRENAME|]: string;|> +// } +// var d: D; +// d./*RENAME*/[|propDRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties6.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties6.baseline.jsonc new file mode 100644 index 0000000000000..62b9a9f056397 --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties6.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties6.ts === +// interface C extends D { +// propD: number; +// } +// interface D extends C { +// /*RENAME*/<|[|propCRENAME|]: number;|> +// } +// var d: D; +// d.[|propCRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties6.ts === +// interface C extends D { +// propD: number; +// } +// interface D extends C { +// <|[|propCRENAME|]: number;|> +// } +// var d: D; +// d./*RENAME*/[|propCRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties7.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties7.baseline.jsonc new file mode 100644 index 0000000000000..49dfc9ef5f90f --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties7.baseline.jsonc @@ -0,0 +1,27 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties7.ts === +// class C extends D { +// /*RENAME*/<|[|prop1RENAME|]: string;|> +// } +// +// class D extends C { +// prop1: string; +// } +// +// var c: C; +// c.[|prop1RENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties7.ts === +// class C extends D { +// <|[|prop1RENAME|]: string;|> +// } +// +// class D extends C { +// prop1: string; +// } +// +// var c: C; +// c./*RENAME*/[|prop1RENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameInheritedProperties8.baseline.jsonc b/tests/baselines/reference/renameInheritedProperties8.baseline.jsonc new file mode 100644 index 0000000000000..b239f02a4c26d --- /dev/null +++ b/tests/baselines/reference/renameInheritedProperties8.baseline.jsonc @@ -0,0 +1,42 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties8.ts === +// class C implements D { +// /*RENAME*/<|[|prop1RENAME|]: string;|> +// } +// +// interface D extends C { +// <|[|prop1RENAME|]: string;|> +// } +// +// var c: C; +// c.[|prop1RENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties8.ts === +// class C implements D { +// <|[|prop1RENAME|]: string;|> +// } +// +// interface D extends C { +// /*RENAME*/<|[|prop1RENAME|]: string;|> +// } +// +// var c: C; +// c.[|prop1RENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameInheritedProperties8.ts === +// class C implements D { +// <|[|prop1RENAME|]: string;|> +// } +// +// interface D extends C { +// <|[|prop1RENAME|]: string;|> +// } +// +// var c: C; +// c./*RENAME*/[|prop1RENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameJSDocNamepath.baseline b/tests/baselines/reference/renameJSDocNamepath.baseline deleted file mode 100644 index 2902827a9d598..0000000000000 --- a/tests/baselines/reference/renameJSDocNamepath.baseline +++ /dev/null @@ -1,7 +0,0 @@ -/*====== /tests/cases/fourslash/renameJSDocNamepath.ts ======*/ - -/** - * @type {module:foo/A} x - */ -var x = 1 -var [|RENAME|] = 0; diff --git a/tests/baselines/reference/renameJSDocNamepath.baseline.jsonc b/tests/baselines/reference/renameJSDocNamepath.baseline.jsonc new file mode 100644 index 0000000000000..2470b073045c2 --- /dev/null +++ b/tests/baselines/reference/renameJSDocNamepath.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameJSDocNamepath.ts === +// /** +// * @type {module:foo/A} x +// */ +// var x = 1 +// <|var /*RENAME*/[|ARENAME|] = 0;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsExports01.baseline.jsonc b/tests/baselines/reference/renameJsExports01.baseline.jsonc index e14c30d652cc6..8ba01317114f2 100644 --- a/tests/baselines/reference/renameJsExports01.baseline.jsonc +++ b/tests/baselines/reference/renameJsExports01.baseline.jsonc @@ -1,118 +1,111 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.js === -// exports.[|area|] = function (r) { return r * r; } +// <|exports.[|{| isWriteAccess: true |}area|] = function (r) { return r * r; }|> // === /tests/cases/fourslash/b.js === // var mod = require('./a'); // var t = mod./*FIND ALL REFS*/[|area|](10); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "property", - "name": "(property) area: (r: any) => number", - "textSpan": { - "start": 8, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "area", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "r", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 12 - } - }, - "references": [ - { - "textSpan": { - "start": 8, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 0, - "length": 45 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 38, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/a.js === + // <|exports.[|area|]|> = function (r) { return r * r; } + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) area: (r: any) => number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "area", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "r", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// <|exports./*RENAME*/[|areaRENAME|] = function (r) { return r * r; }|> + +// === /tests/cases/fourslash/b.js === +// var mod = require('./a'); +// var t = mod.[|areaRENAME|](10); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// <|exports.[|areaRENAME|] = function (r) { return r * r; }|> + +// === /tests/cases/fourslash/b.js === +// var mod = require('./a'); +// var t = mod./*RENAME*/[|areaRENAME|](10); \ No newline at end of file diff --git a/tests/baselines/reference/renameJsExports02.baseline.jsonc b/tests/baselines/reference/renameJsExports02.baseline.jsonc index 8fddd69fe4606..8a01bddf22d7b 100644 --- a/tests/baselines/reference/renameJsExports02.baseline.jsonc +++ b/tests/baselines/reference/renameJsExports02.baseline.jsonc @@ -1,240 +1,181 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.js === +// module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] {}|> + // === /tests/cases/fourslash/b.js === -// const [|A|] = require("./a"); +// <|const [|{| defId: 1, isWriteAccess: true |}A|] = require("./a");|> -// === /tests/cases/fourslash/a.js === -// module.exports = class /*FIND ALL REFS*/[|A|] {} + // === Definitions === + // === /tests/cases/fourslash/a.js === + // module.exports = <|class /*FIND ALL REFS*/[|{| defId: 0 |}A|] {}|> + + // === /tests/cases/fourslash/b.js === + // <|const [|{| defId: 1 |}A|] = require("./a");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "local class", - "name": "(local class) A", - "textSpan": { - "start": 23, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 17, - "length": 10 - } - }, - "references": [ - { - "textSpan": { - "start": 23, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 17, - "length": 10 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "local class", + "name": "(local class) A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.js === -// const /*FIND ALL REFS*/[|A|] = require("./a"); +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}A|] = require("./a");|> + + // === Definitions === + // === /tests/cases/fourslash/b.js === + // <|const /*FIND ALL REFS*/[|A|] = require("./a");|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) (local class) A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local class", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) (local class) A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local class", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/renameJsExports03.baseline.jsonc b/tests/baselines/reference/renameJsExports03.baseline.jsonc index 998cef32512a3..ce6eff7e87519 100644 --- a/tests/baselines/reference/renameJsExports03.baseline.jsonc +++ b/tests/baselines/reference/renameJsExports03.baseline.jsonc @@ -1,477 +1,337 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.js === -// class /*FIND ALL REFS*/[|A|] { +// <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] { // constructor() { } -// } -// module.exports = [|A|]; +// }|> +// <|module.exports = [|{| defId: 0 |}A|];|> // === /tests/cases/fourslash/b.js === -// const [|A|] = require("./a"); -// new [|A|]; +// <|const [|{| defId: 1, isWriteAccess: true |}A|] = require("./a");|> +// new [|{| defId: 1 |}A|]; + + // === Definitions === + // === /tests/cases/fourslash/a.js === + // <|class /*FIND ALL REFS*/[|{| defId: 0 |}A|] { + // constructor() { } + // }|> + // module.exports = A; + + // === /tests/cases/fourslash/b.js === + // <|const [|{| defId: 1 |}A|] = require("./a");|> + // new A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 51, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 34, - "length": 19 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) class A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/a.js === // class A { -// /*FIND ALL REFS*/[|constructor|]() { } +// /*FIND ALL REFS*/<|[|{| defId: 0, isDefinition: true |}constructor|]() { }|> // } // module.exports = A; // === /tests/cases/fourslash/b.js === // const A = require("./a"); -// new [|A|]; +// new [|{| defId: 1 |}A|]; + + // === Definitions === + // === /tests/cases/fourslash/a.js === + // <|class [|{| defId: 0 |}A|] { + // /*FIND ALL REFS*/constructor() { } + // }|> + // module.exports = A; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.js", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 11 - }, - "fileName": "/tests/cases/fourslash/a.js", - "contextSpan": { - "start": 14, - "length": 17 - }, - "isWriteAccess": false, - "isDefinition": true - } + // === /tests/cases/fourslash/b.js === + // <|const [|{| defId: 1 |}A|] = require("./a");|> + // new A; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) class A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.js === -// const /*FIND ALL REFS*/[|A|] = require("./a"); +// <|const /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}A|] = require("./a");|> // new [|A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) class A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/b.js === + // <|const /*FIND ALL REFS*/[|A|] = require("./a");|> + // new A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.js === -// const [|A|] = require("./a"); +// <|const [|{| isWriteAccess: true |}A|] = require("./a");|> // new /*FIND ALL REFS*/[|A|]; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.js", - "kind": "alias", - "name": "(alias) class A\nimport A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 25 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "contextSpan": { - "start": 0, - "length": 25 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 30, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.js", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/b.js === + // <|const [|A|] = require("./a");|> + // new /*FIND ALL REFS*/A; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class A\nimport A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline b/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline deleted file mode 100644 index 9844b0824d24b..0000000000000 --- a/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline +++ /dev/null @@ -1,17 +0,0 @@ -/*====== /tests/cases/fourslash/foo.js ======*/ - -/** - * @overload - * @param {number} x - * @returns {number} - * - * @overload - * @param {string} x - * @returns {string} - * - * @param {unknown} RENAME - * @returns {unknown} - */ -function foo([|RENAME|]) { - return RENAME; -} diff --git a/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline.jsonc b/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline.jsonc new file mode 100644 index 0000000000000..e724bb5491f2d --- /dev/null +++ b/tests/baselines/reference/renameJsOverloadedFunctionParameter.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/foo.js === +// /** +// * @overload +// * @param {number} x +// * @returns {number} +// * +// * @overload +// * @param {string} x +// * @returns {string} +// * +// * @param {unknown} [|xRENAME|] +// * @returns {unknown} +// */ +// function foo([|xRENAME|]/*RENAME*/) { +// return [|xRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameJsPropertyAssignment.baseline.jsonc b/tests/baselines/reference/renameJsPropertyAssignment.baseline.jsonc new file mode 100644 index 0000000000000..5b1b6b9b714d6 --- /dev/null +++ b/tests/baselines/reference/renameJsPropertyAssignment.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar./*RENAME*/[|fooRENAME|] = "foo";|> +// console.log(bar.[|fooRENAME|]); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar.[|fooRENAME|] = "foo";|> +// console.log(bar./*RENAME*/[|fooRENAME|]); \ No newline at end of file diff --git a/tests/baselines/reference/renameJsPropertyAssignment2.baseline.jsonc b/tests/baselines/reference/renameJsPropertyAssignment2.baseline.jsonc new file mode 100644 index 0000000000000..562f160430fd5 --- /dev/null +++ b/tests/baselines/reference/renameJsPropertyAssignment2.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class Minimatch { +// } +// <|Minimatch./*RENAME*/[|staticPropertyRENAME|] = "string";|> +// console.log(Minimatch.[|staticPropertyRENAME|]); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class Minimatch { +// } +// <|Minimatch.[|staticPropertyRENAME|] = "string";|> +// console.log(Minimatch./*RENAME*/[|staticPropertyRENAME|]); \ No newline at end of file diff --git a/tests/baselines/reference/renameJsPropertyAssignment3.baseline.jsonc b/tests/baselines/reference/renameJsPropertyAssignment3.baseline.jsonc new file mode 100644 index 0000000000000..f2150afa1b741 --- /dev/null +++ b/tests/baselines/reference/renameJsPropertyAssignment3.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// var C = class { +// } +// <|C./*RENAME*/[|staticPropertyRENAME|] = "string";|> +// console.log(C.[|staticPropertyRENAME|]); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// var C = class { +// } +// <|C.[|staticPropertyRENAME|] = "string";|> +// console.log(C./*RENAME*/[|staticPropertyRENAME|]); \ No newline at end of file diff --git a/tests/baselines/reference/renameJsPrototypeProperty01.baseline.jsonc b/tests/baselines/reference/renameJsPrototypeProperty01.baseline.jsonc new file mode 100644 index 0000000000000..a42aad89aafa3 --- /dev/null +++ b/tests/baselines/reference/renameJsPrototypeProperty01.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar.prototype./*RENAME*/[|xRENAME|] = 10;|> +// var t = new bar(); +// <|t.[|xRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar.prototype.[|xRENAME|] = 10;|> +// var t = new bar(); +// <|t./*RENAME*/[|xRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsPrototypeProperty02.baseline.jsonc b/tests/baselines/reference/renameJsPrototypeProperty02.baseline.jsonc new file mode 100644 index 0000000000000..a42aad89aafa3 --- /dev/null +++ b/tests/baselines/reference/renameJsPrototypeProperty02.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar.prototype./*RENAME*/[|xRENAME|] = 10;|> +// var t = new bar(); +// <|t.[|xRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// } +// <|bar.prototype.[|xRENAME|] = 10;|> +// var t = new bar(); +// <|t./*RENAME*/[|xRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsSpecialAssignmentRhs1.baseline.jsonc b/tests/baselines/reference/renameJsSpecialAssignmentRhs1.baseline.jsonc new file mode 100644 index 0000000000000..5e2a379c396d5 --- /dev/null +++ b/tests/baselines/reference/renameJsSpecialAssignmentRhs1.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// const foo = { +// set: function (x) { +// this._x = x; +// }, +// copy: function (/*RENAME*/[|xRENAME|]) { +// this._x = [|xRENAME|].prop; +// } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// const foo = { +// set: function (x) { +// this._x = x; +// }, +// copy: function ([|xRENAME|]) { +// this._x = /*RENAME*/[|xRENAME|].prop; +// } +// }; \ No newline at end of file diff --git a/tests/baselines/reference/renameJsSpecialAssignmentRhs2.baseline.jsonc b/tests/baselines/reference/renameJsSpecialAssignmentRhs2.baseline.jsonc new file mode 100644 index 0000000000000..5e2a379c396d5 --- /dev/null +++ b/tests/baselines/reference/renameJsSpecialAssignmentRhs2.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// const foo = { +// set: function (x) { +// this._x = x; +// }, +// copy: function (/*RENAME*/[|xRENAME|]) { +// this._x = [|xRENAME|].prop; +// } +// }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// const foo = { +// set: function (x) { +// this._x = x; +// }, +// copy: function ([|xRENAME|]) { +// this._x = /*RENAME*/[|xRENAME|].prop; +// } +// }; \ No newline at end of file diff --git a/tests/baselines/reference/renameJsThisProperty01.baseline.jsonc b/tests/baselines/reference/renameJsThisProperty01.baseline.jsonc new file mode 100644 index 0000000000000..55276bc0a1a2c --- /dev/null +++ b/tests/baselines/reference/renameJsThisProperty01.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// <|this./*RENAME*/[|xRENAME|] = 10;|> +// } +// var t = new bar(); +// <|t.[|xRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// function bar() { +// <|this.[|xRENAME|] = 10;|> +// } +// var t = new bar(); +// <|t./*RENAME*/[|xRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsThisProperty03.baseline.jsonc b/tests/baselines/reference/renameJsThisProperty03.baseline.jsonc new file mode 100644 index 0000000000000..ac06a745d6428 --- /dev/null +++ b/tests/baselines/reference/renameJsThisProperty03.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class C { +// constructor(y) { +// <|this./*RENAME*/[|xRENAME|] = y;|> +// } +// } +// var t = new C(12); +// <|t.[|xRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class C { +// constructor(y) { +// <|this.[|xRENAME|] = y;|> +// } +// } +// var t = new C(12); +// <|t./*RENAME*/[|xRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsThisProperty05.baseline.jsonc b/tests/baselines/reference/renameJsThisProperty05.baseline.jsonc new file mode 100644 index 0000000000000..a8432c80e6923 --- /dev/null +++ b/tests/baselines/reference/renameJsThisProperty05.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class C { +// constructor(y) { +// this.x = y; +// } +// } +// <|C.prototype./*RENAME*/[|zRENAME|] = 1;|> +// var t = new C(12); +// <|t.[|zRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// class C { +// constructor(y) { +// this.x = y; +// } +// } +// <|C.prototype.[|zRENAME|] = 1;|> +// var t = new C(12); +// <|t./*RENAME*/[|zRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameJsThisProperty06.baseline.jsonc b/tests/baselines/reference/renameJsThisProperty06.baseline.jsonc new file mode 100644 index 0000000000000..a5abdcd321a39 --- /dev/null +++ b/tests/baselines/reference/renameJsThisProperty06.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// var C = class { +// constructor(y) { +// this.x = y; +// } +// } +// <|C.prototype./*RENAME*/[|zRENAME|] = 1;|> +// var t = new C(12); +// <|t.[|zRENAME|] = 11;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// var C = class { +// constructor(y) { +// this.x = y; +// } +// } +// <|C.prototype.[|zRENAME|] = 1;|> +// var t = new C(12); +// <|t./*RENAME*/[|zRENAME|] = 11;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel1.baseline b/tests/baselines/reference/renameLabel1.baseline deleted file mode 100644 index e3cbd64b1c940..0000000000000 --- a/tests/baselines/reference/renameLabel1.baseline +++ /dev/null @@ -1,5 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel1.ts ======*/ - -RENAME: { - break [|RENAME|]; -} diff --git a/tests/baselines/reference/renameLabel1.baseline.jsonc b/tests/baselines/reference/renameLabel1.baseline.jsonc new file mode 100644 index 0000000000000..eb47501257931 --- /dev/null +++ b/tests/baselines/reference/renameLabel1.baseline.jsonc @@ -0,0 +1,5 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel1.ts === +// <|[|fooRENAME|]: { +// <|break /*RENAME*/[|fooRENAME|];|> +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel2.baseline b/tests/baselines/reference/renameLabel2.baseline deleted file mode 100644 index 92f1771b2b0a7..0000000000000 --- a/tests/baselines/reference/renameLabel2.baseline +++ /dev/null @@ -1,5 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel2.ts ======*/ - -[|RENAME|]: { - break RENAME; -} diff --git a/tests/baselines/reference/renameLabel2.baseline.jsonc b/tests/baselines/reference/renameLabel2.baseline.jsonc new file mode 100644 index 0000000000000..adebc16832023 --- /dev/null +++ b/tests/baselines/reference/renameLabel2.baseline.jsonc @@ -0,0 +1,5 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel2.ts === +// /*RENAME*/<|[|fooRENAME|]: { +// <|break [|fooRENAME|];|> +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel3.baseline b/tests/baselines/reference/renameLabel3.baseline deleted file mode 100644 index 404851ae00629..0000000000000 --- a/tests/baselines/reference/renameLabel3.baseline +++ /dev/null @@ -1,8 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel3.ts ======*/ - -[|RENAME|]: -for (let i = 0; i <= 10; i++) { - if (i === 0) continue RENAME; - if (i === 1) continue RENAME; - if (i === 10) break RENAME; -} diff --git a/tests/baselines/reference/renameLabel3.baseline.jsonc b/tests/baselines/reference/renameLabel3.baseline.jsonc new file mode 100644 index 0000000000000..75731da098107 --- /dev/null +++ b/tests/baselines/reference/renameLabel3.baseline.jsonc @@ -0,0 +1,8 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel3.ts === +// /*RENAME*/<|[|loopRENAME|]: +// for (let i = 0; i <= 10; i++) { +// if (i === 0) <|continue [|loopRENAME|];|> +// if (i === 1) <|continue [|loopRENAME|];|> +// if (i === 10) <|break [|loopRENAME|];|> +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel4.baseline b/tests/baselines/reference/renameLabel4.baseline deleted file mode 100644 index 5f1fd986ae0af..0000000000000 --- a/tests/baselines/reference/renameLabel4.baseline +++ /dev/null @@ -1,8 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel4.ts ======*/ - -RENAME: -for (let i = 0; i <= 10; i++) { - if (i === 0) continue RENAME; - if (i === 1) continue [|RENAME|]; - if (i === 10) break RENAME; -} diff --git a/tests/baselines/reference/renameLabel4.baseline.jsonc b/tests/baselines/reference/renameLabel4.baseline.jsonc new file mode 100644 index 0000000000000..c6028eb4f7093 --- /dev/null +++ b/tests/baselines/reference/renameLabel4.baseline.jsonc @@ -0,0 +1,8 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel4.ts === +// <|[|loopRENAME|]: +// for (let i = 0; i <= 10; i++) { +// if (i === 0) <|continue [|loopRENAME|];|> +// if (i === 1) <|continue /*RENAME*/[|loopRENAME|];|> +// if (i === 10) <|break [|loopRENAME|];|> +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel5.baseline b/tests/baselines/reference/renameLabel5.baseline deleted file mode 100644 index 14bb4f1d7fe2a..0000000000000 --- a/tests/baselines/reference/renameLabel5.baseline +++ /dev/null @@ -1,8 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel5.ts ======*/ - -RENAME: for (let i = 0; i <= 10; i++) { - loop2: for (let j = 0; j <= 10; j++) { - if (i === 5) continue [|RENAME|]; - if (j === 5) break loop2; - } -} diff --git a/tests/baselines/reference/renameLabel5.baseline.jsonc b/tests/baselines/reference/renameLabel5.baseline.jsonc new file mode 100644 index 0000000000000..19f6010663016 --- /dev/null +++ b/tests/baselines/reference/renameLabel5.baseline.jsonc @@ -0,0 +1,8 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel5.ts === +// <|[|loop1RENAME|]: for (let i = 0; i <= 10; i++) { +// loop2: for (let j = 0; j <= 10; j++) { +// if (i === 5) <|continue /*RENAME*/[|loop1RENAME|];|> +// if (j === 5) break loop2; +// } +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLabel6.baseline b/tests/baselines/reference/renameLabel6.baseline deleted file mode 100644 index 1db2df7fde33b..0000000000000 --- a/tests/baselines/reference/renameLabel6.baseline +++ /dev/null @@ -1,8 +0,0 @@ -/*====== /tests/cases/fourslash/renameLabel6.ts ======*/ - -loop1: for (let i = 0; i <= 10; i++) { - RENAME: for (let j = 0; j <= 10; j++) { - if (i === 5) continue loop1; - if (j === 5) break [|RENAME|]; - } -} diff --git a/tests/baselines/reference/renameLabel6.baseline.jsonc b/tests/baselines/reference/renameLabel6.baseline.jsonc new file mode 100644 index 0000000000000..b424857fec565 --- /dev/null +++ b/tests/baselines/reference/renameLabel6.baseline.jsonc @@ -0,0 +1,8 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLabel6.ts === +// loop1: for (let i = 0; i <= 10; i++) { +// <|[|loop2RENAME|]: for (let j = 0; j <= 10; j++) { +// if (i === 5) continue loop1; +// if (j === 5) <|break /*RENAME*/[|loop2RENAME|];|> +// }|> +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameLocationsForClassExpression01.baseline.jsonc b/tests/baselines/reference/renameLocationsForClassExpression01.baseline.jsonc new file mode 100644 index 0000000000000..37c68d185e751 --- /dev/null +++ b/tests/baselines/reference/renameLocationsForClassExpression01.baseline.jsonc @@ -0,0 +1,69 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForClassExpression01.ts === +// class Foo { +// } +// +// var x = <|class /*RENAME*/[|FooRENAME|] { +// doIt() { +// return [|FooRENAME|]; +// } +// +// static doItStatically() { +// return [|FooRENAME|].y; +// } +// }|> +// +// var y = class { +// getSomeName() { +// return Foo +// } +// } +// var z = class Foo {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForClassExpression01.ts === +// class Foo { +// } +// +// var x = <|class [|FooRENAME|] { +// doIt() { +// return /*RENAME*/[|FooRENAME|]; +// } +// +// static doItStatically() { +// return [|FooRENAME|].y; +// } +// }|> +// +// var y = class { +// getSomeName() { +// return Foo +// } +// } +// var z = class Foo {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForClassExpression01.ts === +// class Foo { +// } +// +// var x = <|class [|FooRENAME|] { +// doIt() { +// return [|FooRENAME|]; +// } +// +// static doItStatically() { +// return /*RENAME*/[|FooRENAME|].y; +// } +// }|> +// +// var y = class { +// getSomeName() { +// return Foo +// } +// } +// var z = class Foo {} \ No newline at end of file diff --git a/tests/baselines/reference/renameLocationsForFunctionExpression01.baseline.jsonc b/tests/baselines/reference/renameLocationsForFunctionExpression01.baseline.jsonc new file mode 100644 index 0000000000000..3eb8c10a308dc --- /dev/null +++ b/tests/baselines/reference/renameLocationsForFunctionExpression01.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression01.ts === +// var x = <|function /*RENAME*/[|fRENAME|](g: any, h: any) { +// [|fRENAME|]([|fRENAME|], g); +// }|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression01.ts === +// var x = <|function [|fRENAME|](g: any, h: any) { +// /*RENAME*/[|fRENAME|]([|fRENAME|], g); +// }|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression01.ts === +// var x = <|function [|fRENAME|](g: any, h: any) { +// [|fRENAME|](/*RENAME*/[|fRENAME|], g); +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameLocationsForFunctionExpression02.baseline.jsonc b/tests/baselines/reference/renameLocationsForFunctionExpression02.baseline.jsonc new file mode 100644 index 0000000000000..e63810ba1df5a --- /dev/null +++ b/tests/baselines/reference/renameLocationsForFunctionExpression02.baseline.jsonc @@ -0,0 +1,39 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression02.ts === +// function f() { +// +// } +// var x = <|function /*RENAME*/[|fRENAME|](g: any, h: any) { +// +// let helper = function f(): any { f(); } +// +// let foo = () => [|fRENAME|]([|fRENAME|], g); +// }|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression02.ts === +// function f() { +// +// } +// var x = <|function [|fRENAME|](g: any, h: any) { +// +// let helper = function f(): any { f(); } +// +// let foo = () => /*RENAME*/[|fRENAME|]([|fRENAME|], g); +// }|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameLocationsForFunctionExpression02.ts === +// function f() { +// +// } +// var x = <|function [|fRENAME|](g: any, h: any) { +// +// let helper = function f(): any { f(); } +// +// let foo = () => [|fRENAME|](/*RENAME*/[|fRENAME|], g); +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameModifiers.baseline.jsonc b/tests/baselines/reference/renameModifiers.baseline.jsonc new file mode 100644 index 0000000000000..73a50e713316f --- /dev/null +++ b/tests/baselines/reference/renameModifiers.baseline.jsonc @@ -0,0 +1,173 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// /*RENAME*/<|declare abstract class [|C1RENAME|] { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// }|> +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// <|declare /*RENAME*/abstract class [|C1RENAME|] { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// }|> +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// /*RENAME*/<|static [|aRENAME|];|> +// readonly b; +// public c; +// protected d; +// private e; +// } +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// /*RENAME*/<|readonly [|bRENAME|];|> +// public c; +// protected d; +// private e; +// } +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// /*RENAME*/<|public [|cRENAME|];|> +// protected d; +// private e; +// } +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// /*RENAME*/<|protected [|dRENAME|];|> +// private e; +// } +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// protected d; +// /*RENAME*/<|private [|eRENAME|];|> +// } +// const enum E { +// } +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// } +// /*RENAME*/<|const enum [|ERENAME|] { +// }|> +// async function fn() {} +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// } +// const enum E { +// } +// /*RENAME*/<|async function [|fnRENAME|]() {}|> +// export default class C2 {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// } +// const enum E { +// } +// async function fn() {} +// /*RENAME*/<|export default class [|C2RENAME|] {}|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModifiers.ts === +// declare abstract class C1 { +// static a; +// readonly b; +// public c; +// protected d; +// private e; +// } +// const enum E { +// } +// async function fn() {} +// <|export /*RENAME*/default class [|C2RENAME|] {}|> \ No newline at end of file diff --git a/tests/baselines/reference/renameModuleExportsProperties1.baseline.jsonc b/tests/baselines/reference/renameModuleExportsProperties1.baseline.jsonc new file mode 100644 index 0000000000000..d9dabb6b75177 --- /dev/null +++ b/tests/baselines/reference/renameModuleExportsProperties1.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /tests/cases/fourslash/renameModuleExportsProperties1.ts === +// <|class /*RENAME*/[|ARENAME|] {}|> +// module.exports = { /*START PREFIX*/A: [|ARENAME|] } + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /tests/cases/fourslash/renameModuleExportsProperties1.ts === +// <|class [|ARENAME|] {}|> +// module.exports = { /*START PREFIX*/A: /*RENAME*/[|ARENAME|] } \ No newline at end of file diff --git a/tests/baselines/reference/renameModuleExportsProperties2.baseline.jsonc b/tests/baselines/reference/renameModuleExportsProperties2.baseline.jsonc new file mode 100644 index 0000000000000..b5433f347fe7e --- /dev/null +++ b/tests/baselines/reference/renameModuleExportsProperties2.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameModuleExportsProperties2.ts === +// <|class /*RENAME*/[|ARENAME|] {}|> +// module.exports = { B: [|ARENAME|] } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameModuleExportsProperties2.ts === +// <|class [|ARENAME|] {}|> +// module.exports = { B: /*RENAME*/[|ARENAME|] } \ No newline at end of file diff --git a/tests/baselines/reference/renameModuleExportsProperties3.baseline.jsonc b/tests/baselines/reference/renameModuleExportsProperties3.baseline.jsonc new file mode 100644 index 0000000000000..ac6cc24da8c83 --- /dev/null +++ b/tests/baselines/reference/renameModuleExportsProperties3.baseline.jsonc @@ -0,0 +1,15 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /tests/cases/fourslash/a.js === +// <|class /*RENAME*/[|ARENAME|] {}|> +// module.exports = { /*START PREFIX*/A: [|ARENAME|] } + + + +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /tests/cases/fourslash/a.js === +// <|class [|ARENAME|] {}|> +// module.exports = { /*START PREFIX*/A: /*RENAME*/[|ARENAME|] } \ No newline at end of file diff --git a/tests/baselines/reference/renameNamedImport.baseline b/tests/baselines/reference/renameNamedImport.baseline deleted file mode 100644 index 02abd21a3c74a..0000000000000 --- a/tests/baselines/reference/renameNamedImport.baseline +++ /dev/null @@ -1,4 +0,0 @@ -/*====== /src/index.ts ======*/ - -import { [|RENAME|] } from '../lib/index'; -RENAME; diff --git a/tests/baselines/reference/renameNamedImport.baseline.jsonc b/tests/baselines/reference/renameNamedImport.baseline.jsonc new file mode 100644 index 0000000000000..813e1f69dbfe2 --- /dev/null +++ b/tests/baselines/reference/renameNamedImport.baseline.jsonc @@ -0,0 +1,6 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /src/index.ts === +// <|import { /*START PREFIX*/someExportedVariable as /*RENAME*/[|someExportedVariableRENAME|] } from '../lib/index';|> +// [|someExportedVariableRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameNamespaceImport.baseline b/tests/baselines/reference/renameNamespaceImport.baseline deleted file mode 100644 index 7ebef850ab55b..0000000000000 --- a/tests/baselines/reference/renameNamespaceImport.baseline +++ /dev/null @@ -1,4 +0,0 @@ -/*====== /src/index.ts ======*/ - -import * as [|RENAME|] from '../lib/index'; -RENAME.someExportedVariable; diff --git a/tests/baselines/reference/renameNamespaceImport.baseline.jsonc b/tests/baselines/reference/renameNamespaceImport.baseline.jsonc new file mode 100644 index 0000000000000..1a1db6c20e1bc --- /dev/null +++ b/tests/baselines/reference/renameNamespaceImport.baseline.jsonc @@ -0,0 +1,4 @@ +// === findRenameLocations === +// === /src/index.ts === +// <|import * as /*RENAME*/[|libRENAME|] from '../lib/index';|> +// [|libRENAME|].someExportedVariable; \ No newline at end of file diff --git a/tests/baselines/reference/renameObjectBindingElementPropertyName01.baseline.jsonc b/tests/baselines/reference/renameObjectBindingElementPropertyName01.baseline.jsonc new file mode 100644 index 0000000000000..20a8cbe896204 --- /dev/null +++ b/tests/baselines/reference/renameObjectBindingElementPropertyName01.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts === +// interface I { +// /*RENAME*/<|[|property1RENAME|]: number;|> +// property2: string; +// } +// +// var foo: I; +// <|var { [|property1RENAME|]: prop1 } = foo;|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts === +// interface I { +// <|[|property1RENAME|]: number;|> +// property2: string; +// } +// +// var foo: I; +// <|var { /*RENAME*/[|property1RENAME|]: prop1 } = foo;|> \ No newline at end of file diff --git a/tests/baselines/reference/renameObjectSpread.baseline.jsonc b/tests/baselines/reference/renameObjectSpread.baseline.jsonc new file mode 100644 index 0000000000000..bdbd0043bd43e --- /dev/null +++ b/tests/baselines/reference/renameObjectSpread.baseline.jsonc @@ -0,0 +1,30 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpread.ts === +// interface A1 { /*RENAME*/<|[|aRENAME|]: number|> }; +// interface A2 { a?: number }; +// let a1: A1; +// let a2: A2; +// let a12 = { ...a1, ...a2 }; +// a12.[|aRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpread.ts === +// interface A1 { a: number }; +// interface A2 { /*RENAME*/<|[|aRENAME|]?: number|> }; +// let a1: A1; +// let a2: A2; +// let a12 = { ...a1, ...a2 }; +// a12.[|aRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpread.ts === +// interface A1 { <|[|aRENAME|]: number|> }; +// interface A2 { <|[|aRENAME|]?: number|> }; +// let a1: A1; +// let a2: A2; +// let a12 = { ...a1, ...a2 }; +// a12./*RENAME*/[|aRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameObjectSpreadAssignment.baseline.jsonc b/tests/baselines/reference/renameObjectSpreadAssignment.baseline.jsonc new file mode 100644 index 0000000000000..634abe6a20e28 --- /dev/null +++ b/tests/baselines/reference/renameObjectSpreadAssignment.baseline.jsonc @@ -0,0 +1,37 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpreadAssignment.ts === +// interface A1 { a: number }; +// interface A2 { a?: number }; +// <|let /*RENAME*/[|a1RENAME|]: A1;|> +// let a2: A2; +// let a12 = { ...[|a1RENAME|], ...a2 }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpreadAssignment.ts === +// interface A1 { a: number }; +// interface A2 { a?: number }; +// <|let [|a1RENAME|]: A1;|> +// let a2: A2; +// let a12 = { .../*RENAME*/[|a1RENAME|], ...a2 }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpreadAssignment.ts === +// interface A1 { a: number }; +// interface A2 { a?: number }; +// let a1: A1; +// <|let /*RENAME*/[|a2RENAME|]: A2;|> +// let a12 = { ...a1, ...[|a2RENAME|] }; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameObjectSpreadAssignment.ts === +// interface A1 { a: number }; +// interface A2 { a?: number }; +// let a1: A1; +// <|let [|a2RENAME|]: A2;|> +// let a12 = { ...a1, .../*RENAME*/[|a2RENAME|] }; \ No newline at end of file diff --git a/tests/baselines/reference/renameParameterPropertyDeclaration1.baseline.jsonc b/tests/baselines/reference/renameParameterPropertyDeclaration1.baseline.jsonc new file mode 100644 index 0000000000000..d332d914386fd --- /dev/null +++ b/tests/baselines/reference/renameParameterPropertyDeclaration1.baseline.jsonc @@ -0,0 +1,30 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration1.ts === +// class Foo { +// constructor(<|private /*RENAME*/[|privateParamRENAME|]: number|>) { +// let localPrivate = [|privateParamRENAME|]; +// this.[|privateParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration1.ts === +// class Foo { +// constructor(<|private [|privateParamRENAME|]: number|>) { +// let localPrivate = /*RENAME*/[|privateParamRENAME|]; +// this.[|privateParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration1.ts === +// class Foo { +// constructor(<|private [|privateParamRENAME|]: number|>) { +// let localPrivate = [|privateParamRENAME|]; +// this./*RENAME*/[|privateParamRENAME|] += 10; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameParameterPropertyDeclaration2.baseline.jsonc b/tests/baselines/reference/renameParameterPropertyDeclaration2.baseline.jsonc new file mode 100644 index 0000000000000..a332c9524c9ce --- /dev/null +++ b/tests/baselines/reference/renameParameterPropertyDeclaration2.baseline.jsonc @@ -0,0 +1,30 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration2.ts === +// class Foo { +// constructor(<|public /*RENAME*/[|publicParamRENAME|]: number|>) { +// let publicParam = [|publicParamRENAME|]; +// this.[|publicParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration2.ts === +// class Foo { +// constructor(<|public [|publicParamRENAME|]: number|>) { +// let publicParam = /*RENAME*/[|publicParamRENAME|]; +// this.[|publicParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration2.ts === +// class Foo { +// constructor(<|public [|publicParamRENAME|]: number|>) { +// let publicParam = [|publicParamRENAME|]; +// this./*RENAME*/[|publicParamRENAME|] += 10; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameParameterPropertyDeclaration3.baseline.jsonc b/tests/baselines/reference/renameParameterPropertyDeclaration3.baseline.jsonc new file mode 100644 index 0000000000000..791024f02d26f --- /dev/null +++ b/tests/baselines/reference/renameParameterPropertyDeclaration3.baseline.jsonc @@ -0,0 +1,30 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration3.ts === +// class Foo { +// constructor(<|protected /*RENAME*/[|protectedParamRENAME|]: number|>) { +// let protectedParam = [|protectedParamRENAME|]; +// this.[|protectedParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration3.ts === +// class Foo { +// constructor(<|protected [|protectedParamRENAME|]: number|>) { +// let protectedParam = /*RENAME*/[|protectedParamRENAME|]; +// this.[|protectedParamRENAME|] += 10; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration3.ts === +// class Foo { +// constructor(<|protected [|protectedParamRENAME|]: number|>) { +// let protectedParam = [|protectedParamRENAME|]; +// this./*RENAME*/[|protectedParamRENAME|] += 10; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameParameterPropertyDeclaration4.baseline.jsonc b/tests/baselines/reference/renameParameterPropertyDeclaration4.baseline.jsonc new file mode 100644 index 0000000000000..22e3e3e3515a5 --- /dev/null +++ b/tests/baselines/reference/renameParameterPropertyDeclaration4.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration4.ts === +// class Foo { +// constructor(<|protected { /*START PREFIX*/protectedParam: /*RENAME*/[|protectedParamRENAME|] }|>) { +// let myProtectedParam = [|protectedParamRENAME|]; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration4.ts === +// class Foo { +// constructor(<|protected { /*START PREFIX*/protectedParam: [|protectedParamRENAME|] }|>) { +// let myProtectedParam = /*RENAME*/[|protectedParamRENAME|]; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameParameterPropertyDeclaration5.baseline.jsonc b/tests/baselines/reference/renameParameterPropertyDeclaration5.baseline.jsonc new file mode 100644 index 0000000000000..3ecbc73dcb2c9 --- /dev/null +++ b/tests/baselines/reference/renameParameterPropertyDeclaration5.baseline.jsonc @@ -0,0 +1,17 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration5.ts === +// class Foo { +// constructor(<|protected [ /*RENAME*/[|protectedParamRENAME|] ]|>) { +// let myProtectedParam = [|protectedParamRENAME|]; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameParameterPropertyDeclaration5.ts === +// class Foo { +// constructor(<|protected [ [|protectedParamRENAME|] ]|>) { +// let myProtectedParam = /*RENAME*/[|protectedParamRENAME|]; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renamePrivateAccessor.baseline.jsonc b/tests/baselines/reference/renamePrivateAccessor.baseline.jsonc new file mode 100644 index 0000000000000..ee9a0f25d1cb6 --- /dev/null +++ b/tests/baselines/reference/renamePrivateAccessor.baseline.jsonc @@ -0,0 +1,33 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateAccessor.ts === +// class Foo { +// <|get /*RENAME*/[|#fooRENAME|]() { return 1 }|> +// <|set [|#fooRENAME|](value: number) { }|> +// retFoo() { +// return this.[|#fooRENAME|]; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateAccessor.ts === +// class Foo { +// <|get [|#fooRENAME|]() { return 1 }|> +// <|set /*RENAME*/[|#fooRENAME|](value: number) { }|> +// retFoo() { +// return this.[|#fooRENAME|]; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateAccessor.ts === +// class Foo { +// <|get [|#fooRENAME|]() { return 1 }|> +// <|set [|#fooRENAME|](value: number) { }|> +// retFoo() { +// return this./*RENAME*/[|#fooRENAME|]; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renamePrivateFields1.baseline.jsonc b/tests/baselines/reference/renamePrivateFields1.baseline.jsonc new file mode 100644 index 0000000000000..5ccff96c20fb3 --- /dev/null +++ b/tests/baselines/reference/renamePrivateFields1.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateFields1.ts === +// class Foo { +// /*RENAME*/<|[|#fooRENAME|] = 1;|> +// +// getFoo() { +// return this.[|#fooRENAME|]; +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateFields1.ts === +// class Foo { +// <|[|#fooRENAME|] = 1;|> +// +// getFoo() { +// return this./*RENAME*/[|#fooRENAME|]; +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renamePrivateMethod.baseline.jsonc b/tests/baselines/reference/renamePrivateMethod.baseline.jsonc new file mode 100644 index 0000000000000..c7a2b04681db0 --- /dev/null +++ b/tests/baselines/reference/renamePrivateMethod.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateMethod.ts === +// class Foo { +// /*RENAME*/<|[|#fooRENAME|]() { }|> +// callFoo() { +// return this.[|#fooRENAME|](); +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePrivateMethod.ts === +// class Foo { +// <|[|#fooRENAME|]() { }|> +// callFoo() { +// return this./*RENAME*/[|#fooRENAME|](); +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renamePropertyAccessExpressionHeritageClause.baseline.jsonc b/tests/baselines/reference/renamePropertyAccessExpressionHeritageClause.baseline.jsonc new file mode 100644 index 0000000000000..dc49ea6c40876 --- /dev/null +++ b/tests/baselines/reference/renamePropertyAccessExpressionHeritageClause.baseline.jsonc @@ -0,0 +1,30 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts === +// class B {} +// function foo() { +// return {/*RENAME*/<|[|BRENAME|]: B|>}; +// } +// class C extends (foo()).[|BRENAME|] {} +// class C1 extends foo().[|BRENAME|] {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts === +// class B {} +// function foo() { +// return {<|[|BRENAME|]: B|>}; +// } +// class C extends (foo())./*RENAME*/[|BRENAME|] {} +// class C1 extends foo().[|BRENAME|] {} + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts === +// class B {} +// function foo() { +// return {<|[|BRENAME|]: B|>}; +// } +// class C extends (foo()).[|BRENAME|] {} +// class C1 extends foo()./*RENAME*/[|BRENAME|] {} \ No newline at end of file diff --git a/tests/baselines/reference/renameReExportDefault.baseline.jsonc b/tests/baselines/reference/renameReExportDefault.baseline.jsonc new file mode 100644 index 0000000000000..d175827a63898 --- /dev/null +++ b/tests/baselines/reference/renameReExportDefault.baseline.jsonc @@ -0,0 +1,60 @@ +// === findRenameLocations === +// === /a.ts === +// export { default } from "./b"; +// <|export { default as /*RENAME*/[|bRENAME|] } from "./b";|> +// export { default as bee } from "./b"; +// import { default as b } from "./b"; +// import { default as bee } from "./b"; +// import b from "./b"; + + + +// === findRenameLocations === +// === /a.ts === +// export { default } from "./b"; +// export { default as b } from "./b"; +// export { default as bee } from "./b"; +// <|import { default as /*RENAME*/[|bRENAME|] } from "./b";|> +// import { default as bee } from "./b"; +// import b from "./b"; + + + +// === findRenameLocations === +// === /a.ts === +// export { default } from "./b"; +// export { default as b } from "./b"; +// export { default as bee } from "./b"; +// import { default as b } from "./b"; +// import { default as bee } from "./b"; +// <|import /*RENAME*/[|bRENAME|] from "./b";|> + + + +// === findRenameLocations === +// === /b.ts === +// <|const /*RENAME*/[|bRENAME|] = 0;|> +// <|export default [|bRENAME|];|> + +// === /a.ts === +// export { default } from "./b"; +// <|export { default as [|bRENAME|] } from "./b";|> +// export { default as bee } from "./b"; +// <|import { default as [|bRENAME|] } from "./b";|> +// import { default as bee } from "./b"; +// <|import [|bRENAME|] from "./b";|> + + + +// === findRenameLocations === +// === /b.ts === +// <|const [|bRENAME|] = 0;|> +// <|export default /*RENAME*/[|bRENAME|];|> + +// === /a.ts === +// export { default } from "./b"; +// <|export { default as [|bRENAME|] } from "./b";|> +// export { default as bee } from "./b"; +// <|import { default as [|bRENAME|] } from "./b";|> +// import { default as bee } from "./b"; +// <|import [|bRENAME|] from "./b";|> \ No newline at end of file diff --git a/tests/baselines/reference/renameReferenceFromLinkTag1.baseline b/tests/baselines/reference/renameReferenceFromLinkTag1.baseline deleted file mode 100644 index 6a267b2d99745..0000000000000 --- a/tests/baselines/reference/renameReferenceFromLinkTag1.baseline +++ /dev/null @@ -1,6 +0,0 @@ -/*====== /tests/cases/fourslash/renameReferenceFromLinkTag1.ts ======*/ - -enum E { - /** {@link [|RENAME|]} */ - RENAME -} diff --git a/tests/baselines/reference/renameReferenceFromLinkTag1.baseline.jsonc b/tests/baselines/reference/renameReferenceFromLinkTag1.baseline.jsonc new file mode 100644 index 0000000000000..2e7b3a3b473e1 --- /dev/null +++ b/tests/baselines/reference/renameReferenceFromLinkTag1.baseline.jsonc @@ -0,0 +1,6 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameReferenceFromLinkTag1.ts === +// enum E { +// /** {@link /*RENAME*/[|ARENAME|]} */ +// [|ARENAME|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameReferenceFromLinkTag2.baseline b/tests/baselines/reference/renameReferenceFromLinkTag2.baseline deleted file mode 100644 index 3da46e2bfff7d..0000000000000 --- a/tests/baselines/reference/renameReferenceFromLinkTag2.baseline +++ /dev/null @@ -1,9 +0,0 @@ -/*====== /a.ts ======*/ - -enum E { - /** {@link [|RENAME|]} */ - Foo -} -interface RENAME { - foo: E.Foo; -} diff --git a/tests/baselines/reference/renameReferenceFromLinkTag2.baseline.jsonc b/tests/baselines/reference/renameReferenceFromLinkTag2.baseline.jsonc new file mode 100644 index 0000000000000..3dbdb219b9485 --- /dev/null +++ b/tests/baselines/reference/renameReferenceFromLinkTag2.baseline.jsonc @@ -0,0 +1,9 @@ +// === findRenameLocations === +// === /a.ts === +// enum E { +// /** {@link /*RENAME*/[|FooRENAME|]} */ +// Foo +// } +// <|interface [|FooRENAME|] { +// foo: E.Foo; +// }|> \ No newline at end of file diff --git a/tests/baselines/reference/renameReferenceFromLinkTag3.baseline b/tests/baselines/reference/renameReferenceFromLinkTag3.baseline deleted file mode 100644 index 19e3ec871e420..0000000000000 --- a/tests/baselines/reference/renameReferenceFromLinkTag3.baseline +++ /dev/null @@ -1,12 +0,0 @@ -/*====== /tests/cases/fourslash/a.ts ======*/ - -interface RENAME { - foo: E.Foo; -} - -/*====== /tests/cases/fourslash/b.ts ======*/ - -enum E { - /** {@link RENAME} */ - Foo -} diff --git a/tests/baselines/reference/renameReferenceFromLinkTag3.baseline.jsonc b/tests/baselines/reference/renameReferenceFromLinkTag3.baseline.jsonc new file mode 100644 index 0000000000000..7843b492756d4 --- /dev/null +++ b/tests/baselines/reference/renameReferenceFromLinkTag3.baseline.jsonc @@ -0,0 +1,11 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|interface [|FooRENAME|] { +// foo: E.Foo; +// }|> + +// === /tests/cases/fourslash/b.ts === +// enum E { +// /** {@link /*RENAME*/[|FooRENAME|]} */ +// Foo +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameReferenceFromLinkTag4.baseline b/tests/baselines/reference/renameReferenceFromLinkTag4.baseline deleted file mode 100644 index 4020ebfd1dffa..0000000000000 --- a/tests/baselines/reference/renameReferenceFromLinkTag4.baseline +++ /dev/null @@ -1,7 +0,0 @@ -/*====== /tests/cases/fourslash/renameReferenceFromLinkTag4.ts ======*/ - -enum E { - /** {@link [|RENAME|]} */ - A, - RENAME -} diff --git a/tests/baselines/reference/renameReferenceFromLinkTag4.baseline.jsonc b/tests/baselines/reference/renameReferenceFromLinkTag4.baseline.jsonc new file mode 100644 index 0000000000000..17497febf8b28 --- /dev/null +++ b/tests/baselines/reference/renameReferenceFromLinkTag4.baseline.jsonc @@ -0,0 +1,7 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameReferenceFromLinkTag4.ts === +// enum E { +// /** {@link /*RENAME*/[|BRENAME|]} */ +// A, +// [|BRENAME|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameReferenceFromLinkTag5.baseline b/tests/baselines/reference/renameReferenceFromLinkTag5.baseline deleted file mode 100644 index 605869bd5e8cc..0000000000000 --- a/tests/baselines/reference/renameReferenceFromLinkTag5.baseline +++ /dev/null @@ -1,6 +0,0 @@ -/*====== /tests/cases/fourslash/renameReferenceFromLinkTag5.ts ======*/ - -enum E { - /** {@link E.[|RENAME|]} */ - RENAME -} diff --git a/tests/baselines/reference/renameReferenceFromLinkTag5.baseline.jsonc b/tests/baselines/reference/renameReferenceFromLinkTag5.baseline.jsonc new file mode 100644 index 0000000000000..ea94ad0921948 --- /dev/null +++ b/tests/baselines/reference/renameReferenceFromLinkTag5.baseline.jsonc @@ -0,0 +1,6 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameReferenceFromLinkTag5.ts === +// enum E { +// /** {@link E./*RENAME*/[|ARENAME|]} */ +// [|ARENAME|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameRest.baseline.jsonc b/tests/baselines/reference/renameRest.baseline.jsonc new file mode 100644 index 0000000000000..3c1eea43bd081 --- /dev/null +++ b/tests/baselines/reference/renameRest.baseline.jsonc @@ -0,0 +1,23 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameRest.ts === +// interface Gen { +// x: number; +// /*RENAME*/<|[|parentRENAME|]: Gen;|> +// millenial: string; +// } +// let t: Gen; +// var { x, ...rest } = t; +// rest.[|parentRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameRest.ts === +// interface Gen { +// x: number; +// <|[|parentRENAME|]: Gen;|> +// millenial: string; +// } +// let t: Gen; +// var { x, ...rest } = t; +// rest./*RENAME*/[|parentRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameRestBindingElement.baseline.jsonc b/tests/baselines/reference/renameRestBindingElement.baseline.jsonc new file mode 100644 index 0000000000000..638cc3825adab --- /dev/null +++ b/tests/baselines/reference/renameRestBindingElement.baseline.jsonc @@ -0,0 +1,12 @@ +// === findRenameLocations === +// @providePrefixAndSuffixTextForRename: true + +// === /tests/cases/fourslash/renameRestBindingElement.ts === +// interface I { +// a: number; +// b: number; +// c: number; +// } +// function foo(<|{ a, .../*RENAME*/[|restRENAME|] }: I|>) { +// [|restRENAME|]; +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameStringLiteralOk.baseline.jsonc b/tests/baselines/reference/renameStringLiteralOk.baseline.jsonc new file mode 100644 index 0000000000000..5770b650a9b28 --- /dev/null +++ b/tests/baselines/reference/renameStringLiteralOk.baseline.jsonc @@ -0,0 +1,33 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralOk.ts === +// interface Foo { +// f: '/*RENAME*/[|fooRENAME|]' | 'bar' +// } +// const d: 'foo' = 'foo' +// declare const f: Foo +// f.f = '[|fooRENAME|]' +// f.f = `[|fooRENAME|]` + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralOk.ts === +// interface Foo { +// f: '[|fooRENAME|]' | 'bar' +// } +// const d: 'foo' = 'foo' +// declare const f: Foo +// f.f = '/*RENAME*/[|fooRENAME|]' +// f.f = `[|fooRENAME|]` + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralOk.ts === +// interface Foo { +// f: '[|fooRENAME|]' | 'bar' +// } +// const d: 'foo' = 'foo' +// declare const f: Foo +// f.f = '[|fooRENAME|]' +// f.f = `/*RENAME*/[|fooRENAME|]` \ No newline at end of file diff --git a/tests/baselines/reference/renameStringLiteralOk1.baseline.jsonc b/tests/baselines/reference/renameStringLiteralOk1.baseline.jsonc new file mode 100644 index 0000000000000..3a8d1c92929c8 --- /dev/null +++ b/tests/baselines/reference/renameStringLiteralOk1.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralOk1.ts === +// declare function f(): '/*RENAME*/[|fooRENAME|]' | 'bar' +// class Foo { +// f = f() +// } +// const d: 'foo' = 'foo' +// declare const ff: Foo +// ff.f = '[|fooRENAME|]' + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralOk1.ts === +// declare function f(): '[|fooRENAME|]' | 'bar' +// class Foo { +// f = f() +// } +// const d: 'foo' = 'foo' +// declare const ff: Foo +// ff.f = '/*RENAME*/[|fooRENAME|]' \ No newline at end of file diff --git a/tests/baselines/reference/renameStringLiteralTypes1.baseline.jsonc b/tests/baselines/reference/renameStringLiteralTypes1.baseline.jsonc new file mode 100644 index 0000000000000..d88b0f2fc2f4e --- /dev/null +++ b/tests/baselines/reference/renameStringLiteralTypes1.baseline.jsonc @@ -0,0 +1,25 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes1.ts === +// interface AnimationOptions { +// deltaX: number; +// deltaY: number; +// easing: "ease-in" | "ease-out" | "/*RENAME*/[|ease-in-outRENAME|]"; +// } +// +// function animate(o: AnimationOptions) { } +// +// animate({ deltaX: 100, deltaY: 100, easing: "[|ease-in-outRENAME|]" }); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes1.ts === +// interface AnimationOptions { +// deltaX: number; +// deltaY: number; +// easing: "ease-in" | "ease-out" | "[|ease-in-outRENAME|]"; +// } +// +// function animate(o: AnimationOptions) { } +// +// animate({ deltaX: 100, deltaY: 100, easing: "/*RENAME*/[|ease-in-outRENAME|]" }); \ No newline at end of file diff --git a/tests/baselines/reference/renameStringLiteralTypes2.baseline.jsonc b/tests/baselines/reference/renameStringLiteralTypes2.baseline.jsonc new file mode 100644 index 0000000000000..e84c814f1e2e1 --- /dev/null +++ b/tests/baselines/reference/renameStringLiteralTypes2.baseline.jsonc @@ -0,0 +1,227 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "/*RENAME*/[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "/*RENAME*/[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "/*RENAME*/[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("/*RENAME*/[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "/*RENAME*/[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("/*RENAME*/[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "/*RENAME*/[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("/*RENAME*/[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "/*RENAME*/[|aRENAME|]") {} +// if ("[|aRENAME|]" != this.p) {} +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes2.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// if (this.p === "[|aRENAME|]") {} +// if ("[|aRENAME|]" === this.p) {} +// +// if (this.p !== "[|aRENAME|]") {} +// if ("[|aRENAME|]" !== this.p) {} +// +// if (this.p == "[|aRENAME|]") {} +// if ("[|aRENAME|]" == this.p) {} +// +// if (this.p != "[|aRENAME|]") {} +// if ("/*RENAME*/[|aRENAME|]" != this.p) {} +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameStringLiteralTypes3.baseline.jsonc b/tests/baselines/reference/renameStringLiteralTypes3.baseline.jsonc new file mode 100644 index 0000000000000..d0e78fd947cad --- /dev/null +++ b/tests/baselines/reference/renameStringLiteralTypes3.baseline.jsonc @@ -0,0 +1,51 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes3.ts === +// type Foo = "/*RENAME*/[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// switch (this.p) { +// case "[|aRENAME|]": +// return 1; +// case "b": +// return 2; +// } +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes3.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "/*RENAME*/[|aRENAME|]"; +// m() { +// switch (this.p) { +// case "[|aRENAME|]": +// return 1; +// case "b": +// return 2; +// } +// } +// } + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringLiteralTypes3.ts === +// type Foo = "[|aRENAME|]" | "b"; +// +// class C { +// p: Foo = "[|aRENAME|]"; +// m() { +// switch (this.p) { +// case "/*RENAME*/[|aRENAME|]": +// return 1; +// case "b": +// return 2; +// } +// } +// } \ No newline at end of file diff --git a/tests/baselines/reference/renameStringPropertyNames.baseline.jsonc b/tests/baselines/reference/renameStringPropertyNames.baseline.jsonc new file mode 100644 index 0000000000000..c01c3e7fd5c97 --- /dev/null +++ b/tests/baselines/reference/renameStringPropertyNames.baseline.jsonc @@ -0,0 +1,77 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringPropertyNames.ts === +// var o = { +// /*RENAME*/<|[|propRENAME|]: 0|> +// }; +// +// o = { +// <|"[|propRENAME|]": 1|> +// }; +// +// o["[|propRENAME|]"]; +// o['[|propRENAME|]']; +// o.[|propRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringPropertyNames.ts === +// var o = { +// <|[|propRENAME|]: 0|> +// }; +// +// o = { +// <|"/*RENAME*/[|propRENAME|]": 1|> +// }; +// +// o["[|propRENAME|]"]; +// o['[|propRENAME|]']; +// o.[|propRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringPropertyNames.ts === +// var o = { +// <|[|propRENAME|]: 0|> +// }; +// +// o = { +// <|"[|propRENAME|]": 1|> +// }; +// +// o["/*RENAME*/[|propRENAME|]"]; +// o['[|propRENAME|]']; +// o.[|propRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringPropertyNames.ts === +// var o = { +// <|[|propRENAME|]: 0|> +// }; +// +// o = { +// <|"[|propRENAME|]": 1|> +// }; +// +// o["[|propRENAME|]"]; +// o['/*RENAME*/[|propRENAME|]']; +// o.[|propRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameStringPropertyNames.ts === +// var o = { +// <|[|propRENAME|]: 0|> +// }; +// +// o = { +// <|"[|propRENAME|]": 1|> +// }; +// +// o["[|propRENAME|]"]; +// o['[|propRENAME|]']; +// o./*RENAME*/[|propRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameTemplateLiteralsComputedProperties.baseline.jsonc b/tests/baselines/reference/renameTemplateLiteralsComputedProperties.baseline.jsonc new file mode 100644 index 0000000000000..6319a2bcc7ef8 --- /dev/null +++ b/tests/baselines/reference/renameTemplateLiteralsComputedProperties.baseline.jsonc @@ -0,0 +1,717 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`/*RENAME*/[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`/*RENAME*/[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['/*RENAME*/[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o./*RENAME*/[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['/*RENAME*/[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["/*RENAME*/[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`/*RENAME*/[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj./*RENAME*/[|numRENAME|]; +// obj[`[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// <|[`[|numRENAME|]`]: number;|> +// ['bool']: boolean; +// } +// +// let o: Obj = { +// <|[`[|numRENAME|]`]: 0|>, +// ['bool']: true, +// }; +// +// o = { +// <|['[|numRENAME|]']: 1|>, +// [`bool`]: false, +// }; +// +// o.[|numRENAME|]; +// o['[|numRENAME|]']; +// o["[|numRENAME|]"]; +// o[`[|numRENAME|]`]; +// +// o.bool; +// o['bool']; +// o["bool"]; +// o[`bool`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.[|numRENAME|]; +// obj[`/*RENAME*/[|numRENAME|]`]; +// +// obj.bool; +// obj[`bool`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['/*RENAME*/[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['/*RENAME*/[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`/*RENAME*/[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o./*RENAME*/[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['/*RENAME*/[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["/*RENAME*/[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`/*RENAME*/[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj./*RENAME*/[|boolRENAME|]; +// obj[`[|boolRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// interface Obj { +// [`num`]: number; +// <|['[|boolRENAME|]']: boolean;|> +// } +// +// let o: Obj = { +// [`num`]: 0, +// <|['[|boolRENAME|]']: true|>, +// }; +// +// o = { +// ['num']: 1, +// <|[`[|boolRENAME|]`]: false|>, +// }; +// +// o.num; +// o['num']; +// o["num"]; +// o[`num`]; +// +// o.[|boolRENAME|]; +// o['[|boolRENAME|]']; +// o["[|boolRENAME|]"]; +// o[`[|boolRENAME|]`]; +// +// export { o }; + +// === /tests/cases/fourslash/b.js === +// import { o as obj } from './a'; +// +// obj.num; +// obj[`num`]; +// +// obj.[|boolRENAME|]; +// obj[`/*RENAME*/[|boolRENAME|]`]; \ No newline at end of file diff --git a/tests/baselines/reference/renameTemplateLiteralsDefinePropertyJs.baseline.jsonc b/tests/baselines/reference/renameTemplateLiteralsDefinePropertyJs.baseline.jsonc new file mode 100644 index 0000000000000..3d719b7272039 --- /dev/null +++ b/tests/baselines/reference/renameTemplateLiteralsDefinePropertyJs.baseline.jsonc @@ -0,0 +1,99 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `/*RENAME*/[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`[|propRENAME|]`]: 1|> +// }; +// +// obj.[|propRENAME|]; +// obj['[|propRENAME|]']; +// obj["[|propRENAME|]"]; +// obj[`[|propRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`/*RENAME*/[|propRENAME|]`]: 1|> +// }; +// +// obj.[|propRENAME|]; +// obj['[|propRENAME|]']; +// obj["[|propRENAME|]"]; +// obj[`[|propRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`[|propRENAME|]`]: 1|> +// }; +// +// obj./*RENAME*/[|propRENAME|]; +// obj['[|propRENAME|]']; +// obj["[|propRENAME|]"]; +// obj[`[|propRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`[|propRENAME|]`]: 1|> +// }; +// +// obj.[|propRENAME|]; +// obj['/*RENAME*/[|propRENAME|]']; +// obj["[|propRENAME|]"]; +// obj[`[|propRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`[|propRENAME|]`]: 1|> +// }; +// +// obj.[|propRENAME|]; +// obj['[|propRENAME|]']; +// obj["/*RENAME*/[|propRENAME|]"]; +// obj[`[|propRENAME|]`]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.js === +// let obj = {}; +// +// Object.defineProperty(obj, `[|propRENAME|]`, { value: 0 }); +// +// obj = { +// <|[`[|propRENAME|]`]: 1|> +// }; +// +// obj.[|propRENAME|]; +// obj['[|propRENAME|]']; +// obj["[|propRENAME|]"]; +// obj[`/*RENAME*/[|propRENAME|]`]; \ No newline at end of file diff --git a/tests/baselines/reference/renameThis.baseline.jsonc b/tests/baselines/reference/renameThis.baseline.jsonc new file mode 100644 index 0000000000000..735b44f144131 --- /dev/null +++ b/tests/baselines/reference/renameThis.baseline.jsonc @@ -0,0 +1,37 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/renameThis.ts === +// function f(/*RENAME*/[|thisRENAME|]) { +// return [|thisRENAME|]; +// } +// this; +// const _ = { this: 0 }.this; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameThis.ts === +// function f([|thisRENAME|]) { +// return /*RENAME*/[|thisRENAME|]; +// } +// this; +// const _ = { this: 0 }.this; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameThis.ts === +// function f(this) { +// return this; +// } +// this; +// const _ = { /*RENAME*/<|[|thisRENAME|]: 0|> }.[|thisRENAME|]; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/renameThis.ts === +// function f(this) { +// return this; +// } +// this; +// const _ = { <|[|thisRENAME|]: 0|> }./*RENAME*/[|thisRENAME|]; \ No newline at end of file diff --git a/tests/baselines/reference/renameUMDModuleAlias1.baseline.jsonc b/tests/baselines/reference/renameUMDModuleAlias1.baseline.jsonc new file mode 100644 index 0000000000000..da7fc33432f64 --- /dev/null +++ b/tests/baselines/reference/renameUMDModuleAlias1.baseline.jsonc @@ -0,0 +1,21 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/0.d.ts === +// export function doThing(): string; +// export function doTheOtherThing(): void; +// <|export as namespace /*RENAME*/[|myLibRENAME|];|> + +// === /tests/cases/fourslash/1.ts === +// /// +// [|myLibRENAME|].doThing(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/0.d.ts === +// export function doThing(): string; +// export function doTheOtherThing(): void; +// <|export as namespace [|myLibRENAME|];|> + +// === /tests/cases/fourslash/1.ts === +// /// +// /*RENAME*/[|myLibRENAME|].doThing(); \ No newline at end of file diff --git a/tests/baselines/reference/scopeOfUnionProperties.baseline.jsonc b/tests/baselines/reference/scopeOfUnionProperties.baseline.jsonc new file mode 100644 index 0000000000000..c6560e0540ccc --- /dev/null +++ b/tests/baselines/reference/scopeOfUnionProperties.baseline.jsonc @@ -0,0 +1,5 @@ +// === documentHighlights === +// === /tests/cases/fourslash/scopeOfUnionProperties.ts === +// function f(s: string | number) { +// s.[|{| kind: "reference" |}constr/*HIGHLIGHTS*/uctor|] +// } \ No newline at end of file diff --git a/tests/baselines/reference/transitiveExportImports.baseline.jsonc b/tests/baselines/reference/transitiveExportImports.baseline.jsonc index d3561a9f7e940..f98a239c36ce0 100644 --- a/tests/baselines/reference/transitiveExportImports.baseline.jsonc +++ b/tests/baselines/reference/transitiveExportImports.baseline.jsonc @@ -1,491 +1,403 @@ +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// class /*FIND ALL REFS*/[|A|] { -// } -// export = [|A|]; +// <|class /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] { +// }|> +// <|export = [|{| defId: 0 |}A|];|> // === /tests/cases/fourslash/b.ts === -// export import [|b|] = require('./a'); +// <|export import [|{| defId: 1, isWriteAccess: true |}b|] = require('./a');|> // === /tests/cases/fourslash/c.ts === // import b = require('./b'); -// var a = new b.[|b|](); +// var a = new b.[|{| defId: 1 |}b|](); + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|class /*FIND ALL REFS*/[|{| defId: 0 |}A|] { + // }|> + // export = A; + + // === /tests/cases/fourslash/b.ts === + // <|export import [|{| defId: 1 |}b|] = require('./a');|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "class", - "name": "class A", - "textSpan": { - "start": 6, - "length": 1 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "className" - } - ], - "contextSpan": { - "start": 0, - "length": 11 - } - }, - "references": [ - { - "textSpan": { - "start": 6, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 12, - "length": 11 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class A", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class b\nimport b = require('./a')", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "'./a'", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class b\nimport b = require('./a')", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "'./a'", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// export import /*FIND ALL REFS*/[|b|] = require('./a'); +// <|export import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}b|] = require('./a');|> // === /tests/cases/fourslash/c.ts === // import b = require('./b'); // var a = new b.[|b|](); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) class b\nimport b = require('./a')", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "'./a'", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 33 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 33 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 41, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|export import /*FIND ALL REFS*/[|b|] = require('./a');|> + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) class b\nimport b = require('./a')", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "'./a'", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/c.ts === -// import /*FIND ALL REFS*/[|b|] = require('./b'); +// <|import /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}b|] = require('./b');|> // var a = new [|b|].b(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "import b = require('./b')", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "'./b'", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 39, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/c.ts === + // <|import /*FIND ALL REFS*/[|b|] = require('./b');|> + // var a = new b.b(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import b = require('./b')", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "'./b'", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/c.ts === -// import [|b|] = require('./b'); +// <|import [|{| isWriteAccess: true |}b|] = require('./b');|> // var a = new /*FIND ALL REFS*/[|b|].b(); -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "import b = require('./b')", - "textSpan": { - "start": 7, - "length": 1 - }, - "displayParts": [ - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "require", - "kind": "keyword" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "'./b'", - "kind": "stringLiteral" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 0, - "length": 26 - } - }, - "references": [ - { - "textSpan": { - "start": 7, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 26 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 39, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "isWriteAccess": false - } + // === Definitions === + // === /tests/cases/fourslash/c.ts === + // <|import [|b|] = require('./b');|> + // var a = new /*FIND ALL REFS*/b.b(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "import b = require('./b')", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "require", + "kind": "keyword" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "'./b'", + "kind": "stringLiteral" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|class /*RENAME*/[|ARENAME|] { +// }|> +// <|export = [|ARENAME|];|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|class [|ARENAME|] { +// }|> +// <|export = /*RENAME*/[|ARENAME|];|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|export import /*RENAME*/[|bRENAME|] = require('./a');|> + +// === /tests/cases/fourslash/c.ts === +// import b = require('./b'); +// var a = new b.[|bRENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|export import [|bRENAME|] = require('./a');|> + +// === /tests/cases/fourslash/c.ts === +// import b = require('./b'); +// var a = new b./*RENAME*/[|bRENAME|](); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/c.ts === +// <|import /*RENAME*/[|bRENAME|] = require('./b');|> +// var a = new [|bRENAME|].b(); + + + +// === findRenameLocations === +// === /tests/cases/fourslash/c.ts === +// <|import [|bRENAME|] = require('./b');|> +// var a = new /*RENAME*/[|bRENAME|].b(); \ No newline at end of file diff --git a/tests/baselines/reference/transitiveExportImports2.baseline.jsonc b/tests/baselines/reference/transitiveExportImports2.baseline.jsonc index 1c2aae6bbe7b4..d1b753d87ebd8 100644 --- a/tests/baselines/reference/transitiveExportImports2.baseline.jsonc +++ b/tests/baselines/reference/transitiveExportImports2.baseline.jsonc @@ -1,632 +1,510 @@ -// === /tests/cases/fourslash/c.ts === -// import { [|B|] } from "./b"; - +// === findAllReferences === // === /tests/cases/fourslash/a.ts === -// namespace /*FIND ALL REFS*/[|A|] { +// <|namespace /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}A|] { // export const x = 0; -// } +// }|> // === /tests/cases/fourslash/b.ts === -// export import [|B|] = [|A|]; -// [|B|].x; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "module", - "name": "namespace A", - "textSpan": { - "start": 10, - "length": 1 - }, - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 39 - } - }, - "references": [ - { - "textSpan": { - "start": 10, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 39 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 18, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|export import [|{| defId: 1, isWriteAccess: true |}B|] = [|{| defId: 0 |}A|];|> +// [|{| defId: 1 |}B|].x; + +// === /tests/cases/fourslash/c.ts === +// <|import { [|{| defId: 2, isWriteAccess: true |}B|] } from "./b";|> + + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|namespace /*FIND ALL REFS*/[|{| defId: 0 |}A|] { + // export const x = 0; + // }|> + + // === /tests/cases/fourslash/b.ts === + // <|export import [|{| defId: 1 |}B|] = A;|> + // B.x; + + // === /tests/cases/fourslash/c.ts === + // <|import { [|{| defId: 2 |}B|] } from "./b";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "module", + "name": "namespace A", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B = A", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B = A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] + } + ] + -// === /tests/cases/fourslash/c.ts === -// import { [|B|] } from "./b"; +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// export import /*FIND ALL REFS*/[|B|] = A; -// [|B|].x; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B = A", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } +// <|export import /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] = A;|> +// [|{| defId: 0 |}B|].x; + +// === /tests/cases/fourslash/c.ts === +// <|import { [|{| defId: 1, isWriteAccess: true |}B|] } from "./b";|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|export import /*FIND ALL REFS*/[|{| defId: 0 |}B|] = A;|> + // B.x; + + // === /tests/cases/fourslash/c.ts === + // <|import { [|{| defId: 1 |}B|] } from "./b";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B = A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "moduleName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/c.ts === -// import { /*FIND ALL REFS*/[|B|] } from "./b"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}B|] } from "./b";|> // === /tests/cases/fourslash/b.ts === -// export import [|B|] = A; -// [|B|].x; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/c.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B", - "textSpan": { - "start": 9, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/c.ts", - "contextSpan": { - "start": 0, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } +// <|export import [|{| defId: 1, isWriteAccess: true |}B|] = A;|> +// [|{| defId: 1 |}B|].x; + + // === Definitions === + // === /tests/cases/fourslash/c.ts === + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}B|] } from "./b";|> + + // === /tests/cases/fourslash/b.ts === + // <|export import [|{| defId: 1 |}B|] = A;|> + // B.x; + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) namespace B\nimport B = A", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "B", - "kind": "aliasName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=", - "kind": "operator" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A", - "kind": "moduleName" - } - ], - "contextSpan": { - "start": 0, - "length": 20 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 20 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 21, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) namespace B\nimport B = A", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "moduleName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|namespace /*RENAME*/[|ARENAME|] { +// export const x = 0; +// }|> + +// === /tests/cases/fourslash/b.ts === +// export import B = [|ARENAME|]; +// B.x; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|namespace [|ARENAME|] { +// export const x = 0; +// }|> + +// === /tests/cases/fourslash/b.ts === +// export import B = /*RENAME*/[|ARENAME|]; +// B.x; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|export import /*RENAME*/[|BRENAME|] = A;|> +// [|BRENAME|].x; + +// === /tests/cases/fourslash/c.ts === +// <|import { [|BRENAME|] } from "./b";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|export import [|BRENAME|] = A;|> +// /*RENAME*/[|BRENAME|].x; + +// === /tests/cases/fourslash/c.ts === +// <|import { [|BRENAME|] } from "./b";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/c.ts === +// <|import { /*START PREFIX*/B as /*RENAME*/[|BRENAME|] } from "./b";|> \ No newline at end of file diff --git a/tests/baselines/reference/transitiveExportImports3.baseline.jsonc b/tests/baselines/reference/transitiveExportImports3.baseline.jsonc index 25a2e20aa6288..d9fd741a6583c 100644 --- a/tests/baselines/reference/transitiveExportImports3.baseline.jsonc +++ b/tests/baselines/reference/transitiveExportImports3.baseline.jsonc @@ -1,1175 +1,939 @@ +// === findAllReferences === +// === /tests/cases/fourslash/a.ts === +// <|export function /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|]() {}|> + // === /tests/cases/fourslash/b.ts === -// export { [|f|] as [|g|] } from "./a"; -// import { [|f|] } from "./a"; -// import { [|g|] } from "./b"; +// <|<|export { [|{| contextId: 1, defId: 0 |}f|] as [|{| contextId: 2, defId: 1, isWriteAccess: true |}g|] } from "./a";|>|> +// <|import { [|{| defId: 3, isWriteAccess: true |}f|] } from "./a";|> +// <|import { [|{| defId: 2, isWriteAccess: true |}g|] } from "./b";|> -// === /tests/cases/fourslash/a.ts === -// export function /*FIND ALL REFS*/[|f|]() {} + // === Definitions === + // === /tests/cases/fourslash/a.ts === + // <|export function /*FIND ALL REFS*/[|{| defId: 0 |}f|]() {}|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === /tests/cases/fourslash/b.ts === + // <|export { f as [|{| defId: 1 |}g|] } from "./a";|> + // <|import { [|{| defId: 3 |}f|] } from "./a";|> + // <|import { [|{| defId: 2 |}g|] } from "./b";|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nexport g", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nexport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 64, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 55, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 55, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 39, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 30, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 39, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 30, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// export { f as /*FIND ALL REFS*/[|g|] } from "./a"; +// <|export { f as /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}g|] } from "./a";|> // import { f } from "./a"; -// import { [|g|] } from "./b"; +// <|import { [|{| defId: 1, isWriteAccess: true |}g|] } from "./b";|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|export { f as /*FIND ALL REFS*/[|{| defId: 0 |}g|] } from "./a";|> + // import { f } from "./a"; + // <|import { [|{| defId: 1 |}g|] } from "./b";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nexport g", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nexport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 64, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 55, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 55, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// export { f as [|g|] } from "./a"; +// <|export { f as [|{| defId: 1, isWriteAccess: true |}g|] } from "./a";|> // import { f } from "./a"; -// import { /*FIND ALL REFS*/[|g|] } from "./b"; +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}g|] } from "./b";|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|export { f as [|{| defId: 1 |}g|] } from "./a";|> + // import { f } from "./a"; + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}g|] } from "./b";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 64, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 55, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 55, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nexport g", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nexport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/b.ts === -// export { [|f|] as [|g|] } from "./a"; -// import { /*FIND ALL REFS*/[|f|] } from "./a"; -// import { [|g|] } from "./b"; +// <|<|export { [|{| contextId: 0, defId: 1 |}f|] as [|{| contextId: 1, defId: 2, isWriteAccess: true |}g|] } from "./a";|>|> +// <|import { /*FIND ALL REFS*/[|{| defId: 0, isWriteAccess: true, isDefinition: true |}f|] } from "./a";|> +// <|import { [|{| defId: 3, isWriteAccess: true |}g|] } from "./b";|> // === /tests/cases/fourslash/a.ts === -// export function [|f|]() {} +// <|export function [|{| defId: 1, isWriteAccess: true |}f|]() {}|> + + // === Definitions === + // === /tests/cases/fourslash/b.ts === + // <|export { f as [|{| defId: 2 |}g|] } from "./a";|> + // <|import { /*FIND ALL REFS*/[|{| defId: 0 |}f|] } from "./a";|> + // <|import { [|{| defId: 3 |}g|] } from "./b";|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function f(): void\nimport f", - "textSpan": { - "start": 39, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 30, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 39, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 30, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - } + // === /tests/cases/fourslash/a.ts === + // <|export function [|{| defId: 1 |}f|]() {}|> + + // === Details === + [ + { + "defId": 0, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function f(): void\nimport f", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/a.ts", - "kind": "function", - "name": "function f(): void", - "textSpan": { - "start": 16, - "length": 1 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 0, - "length": 22 - } - }, - "references": [ - { - "textSpan": { - "start": 16, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/a.ts", - "contextSpan": { - "start": 0, - "length": 22 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 9, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": false, - "isDefinition": false - } + }, + { + "defId": 1, + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function f(): void", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nexport g", - "textSpan": { - "start": 14, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "export", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 0, - "length": 29 - } - }, - "references": [ - { - "textSpan": { - "start": 14, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 0, - "length": 29 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 2, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nexport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "export", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - }, - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/b.ts", - "kind": "alias", - "name": "(alias) function g(): void\nimport g", - "textSpan": { - "start": 64, - "length": 1 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "alias", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "import", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "g", - "kind": "aliasName" - } - ], - "contextSpan": { - "start": 55, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 64, - "length": 1 - }, - "fileName": "/tests/cases/fourslash/b.ts", - "contextSpan": { - "start": 55, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": false - } + }, + { + "defId": 3, + "containerKind": "", + "containerName": "", + "kind": "alias", + "name": "(alias) function g(): void\nimport g", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "alias", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "import", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "aliasName" + } ] - } -] \ No newline at end of file + } + ] + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export function /*RENAME*/[|fRENAME|]() {}|> + +// === /tests/cases/fourslash/b.ts === +// <|export { [|fRENAME|] as g } from "./a";|> +// <|import { [|fRENAME|] } from "./a";|> +// import { g } from "./b"; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/a.ts === +// <|export function [|fRENAME|]() {}|> + +// === /tests/cases/fourslash/b.ts === +// <|export { /*RENAME*/[|fRENAME|] as g } from "./a";|> +// <|import { [|fRENAME|] } from "./a";|> +// import { g } from "./b"; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// export { f as g } from "./a"; +// <|import { /*START PREFIX*/f as /*RENAME*/[|fRENAME|] } from "./a";|> +// import { g } from "./b"; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// <|export { f as /*RENAME*/[|gRENAME|] } from "./a";|> +// import { f } from "./a"; +// <|import { [|gRENAME|] } from "./b";|> + + + +// === findRenameLocations === +// === /tests/cases/fourslash/b.ts === +// export { f as g } from "./a"; +// import { f } from "./a"; +// <|import { /*START PREFIX*/g as /*RENAME*/[|gRENAME|] } from "./b";|> \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences1.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences1.baseline.jsonc index 266a6736b470c..1dde4557b8d78 100644 --- a/tests/baselines/reference/tsxFindAllReferences1.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences1.baseline.jsonc @@ -1,365 +1,337 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } // interface IntrinsicElements { -// /*FIND ALL REFS*/[|div|]: { +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}div|]: { // name?: string; // isOpen?: boolean; -// }; +// };|> // span: { n: string; }; // } // } -// var x = <[|div|] />; +// var x = <|<[|div|] />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // /*FIND ALL REFS*/<|[|div|]: { + // name?: string; + // isOpen?: boolean; + // };|> + // span: { n: string; }; + // } + // } + // var x =
; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: {\n name?: string;\n isOpen?: boolean;\n}", - "textSpan": { - "start": 89, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isOpen", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 89, - "length": 74 - } - }, - "references": [ - { - "textSpan": { - "start": 89, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 89, - "length": 74 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 211, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 210, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: {\n name?: string;\n isOpen?: boolean;\n}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "isOpen", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] + } + ] -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } // interface IntrinsicElements { -// [|div|]: { +// div: { // name?: string; // isOpen?: boolean; // }; // span: { n: string; }; // } // } -// var x = ; +// var x = /*FIND ALL REFS*/
; + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// <|[|{| isWriteAccess: true |}div|]: { +// name?: string; +// isOpen?: boolean; +// };|> +// span: { n: string; }; +// } +// } +// var x = <||>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // <|[|div|]: { + // name?: string; + // isOpen?: boolean; + // };|> + // span: { n: string; }; + // } + // } + // var x = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) JSX.IntrinsicElements.div: {\n name?: string;\n isOpen?: boolean;\n}", - "textSpan": { - "start": 89, - "length": 3 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "IntrinsicElements", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "div", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isOpen", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 89, - "length": 74 - } - }, - "references": [ - { - "textSpan": { - "start": 89, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 89, - "length": 74 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 211, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 210, - "length": 7 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) JSX.IntrinsicElements.div: {\n name?: string;\n isOpen?: boolean;\n}", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "IntrinsicElements", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "div", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "isOpen", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences10.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences10.baseline.jsonc index b84a0db5218c7..86d2c33f0e344 100644 --- a/tests/baselines/reference/tsxFindAllReferences10.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences10.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -10,7 +11,7 @@ // className?: string; // } // interface ButtonProps extends ClickableProps { -// /*FIND ALL REFS*/[|onClick|](event?: React.MouseEvent): void; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}onClick|](event?: React.MouseEvent): void;|> // } // interface LinkProps extends ClickableProps { // goTo: string; @@ -20,158 +21,135 @@ // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; // let opt = ; // let opt = ; -// let opt = {}} />; -// let opt = {}} ignore-prop />; +// let opt = {}}|> />; +// let opt = {}}|> ignore-prop />; // let opt = ; // let opt = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "method", - "name": "(method) ButtonProps.onClick(event?: React.MouseEvent): void", - "textSpan": { - "start": 267, - "length": 7 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "onClick", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "event", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "React", - "kind": "text" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "MouseEvent", - "kind": "text" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "HTMLButtonElement", - "kind": "text" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 267, - "length": 59 - } - }, - "references": [ - { - "textSpan": { - "start": 267, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 267, - "length": 59 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 694, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 694, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 737, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 737, - "length": 16 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // /*FIND ALL REFS*/<|[|onClick|](event?: React.MouseEvent): void;|> + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // declare function MainButton(buttonProps: ButtonProps): JSX.Element; + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "method", + "name": "(method) ButtonProps.onClick(event?: React.MouseEvent): void", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "onClick", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "event", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "React", + "kind": "text" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "MouseEvent", + "kind": "text" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "HTMLButtonElement", + "kind": "text" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences11.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences11.baseline.jsonc index 0a83ad664e852..ff77a2f986e06 100644 --- a/tests/baselines/reference/tsxFindAllReferences11.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences11.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -18,65 +19,71 @@ // declare function MainButton(buttonProps: ButtonProps): JSX.Element; // declare function MainButton(linkProps: LinkProps): JSX.Element; // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; -// let opt = ; +// let opt = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) wrong: true", - "textSpan": { - "start": 622, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "wrong", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "true", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 622, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // declare function MainButton(buttonProps: ButtonProps): JSX.Element; + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) wrong: true", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "wrong", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "true", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences2.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences2.baseline.jsonc index d11b669806d1e..79c8bbf8fc8ae 100644 --- a/tests/baselines/reference/tsxFindAllReferences2.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences2.baseline.jsonc @@ -1,98 +1,75 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } // interface IntrinsicElements { // div: { -// /*FIND ALL REFS*/[|name|]?: string; +// /*FIND ALL REFS*/<|[|{| isWriteAccess: true, isDefinition: true |}name|]?: string;|> // isOpen?: boolean; // }; // span: { n: string; }; // } // } -// var x =
; +// var x =
/>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) name?: string", - "textSpan": { - "start": 108, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 108, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 108, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 108, - "length": 14 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 215, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 215, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // div: { + // /*FIND ALL REFS*/<|[|name|]?: string;|> + // isOpen?: boolean; + // }; + // span: { n: string; }; + // } + // } + // var x =
; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) name?: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences3.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences3.baseline.jsonc index 6d1dd82fad127..1e14ae3bd41bb 100644 --- a/tests/baselines/reference/tsxFindAllReferences3.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences3.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -7,95 +8,74 @@ // } // class MyClass { // props: { -// /*FIND ALL REFS*/[|name|]?: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}name|]?: string;|> // size?: number; // } // // -// var x = ; +// var x = />; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) name?: string", - "textSpan": { - "start": 170, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "name", - "kind": "propertyName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 170, - "length": 14 - } - }, - "references": [ - { - "textSpan": { - "start": 170, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 170, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 225, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 225, - "length": 12 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props } + // } + // class MyClass { + // props: { + // /*FIND ALL REFS*/<|[|name|]?: string;|> + // size?: number; + // } + // + // + // var x = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) name?: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "name", + "kind": "propertyName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences4.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences4.baseline.jsonc index d2b907ee8e799..223a2d86efd3f 100644 --- a/tests/baselines/reference/tsxFindAllReferences4.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences4.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -5,90 +6,59 @@ // } // interface ElementAttributesProperty { props } // } -// /*FIND ALL REFS*/class [|MyClass|] { +// /*FIND ALL REFS*/<|class [|{| isWriteAccess: true, isDefinition: true |}MyClass|] { // props: { // name?: string; // size?: number; -// } +// }|> // // -// var x = <[|MyClass|] name='hello'>; +// var x = <|<|<[|{| contextId: 1 |}MyClass|] name='hello'>|>|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props } + // } + // /*FIND ALL REFS*/<|class [|MyClass|] { + // props: { + // name?: string; + // size?: number; + // }|> + // + // + // var x = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "class", - "name": "class MyClass", - "textSpan": { - "start": 145, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 139, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 139, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 217, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 240, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class MyClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -96,92 +66,59 @@ // } // interface ElementAttributesProperty { props } // } -// class /*FIND ALL REFS*/[|MyClass|] { +// <|class /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}MyClass|] { // props: { // name?: string; // size?: number; -// } +// }|> // // -// var x = <[|MyClass|] name='hello'>; +// var x = <|<|<[|{| contextId: 1 |}MyClass|] name='hello'>|>|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props } + // } + // <|class /*FIND ALL REFS*/[|MyClass|] { + // props: { + // name?: string; + // size?: number; + // }|> + // + // + // var x = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "class", - "name": "class MyClass", - "textSpan": { - "start": 145, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 139, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 139, - "length": 66 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 217, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 240, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class MyClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -189,87 +126,18 @@ undefined // } // interface ElementAttributesProperty { props } // } -// class [|MyClass|] { +// class MyClass { // props: { // name?: string; // size?: number; // } // // -// var x = ; +// var x = /*FIND ALL REFS*/; + -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "class", - "name": "class MyClass", - "textSpan": { - "start": 145, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 139, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 139, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 217, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 240, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false - } - ] - } -] +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -277,83 +145,112 @@ undefined // } // interface ElementAttributesProperty { props } // } -// class [|MyClass|] { +// <|class [|{| isWriteAccess: true |}MyClass|] { // props: { // name?: string; // size?: number; +// }|> +// +// +// var x = <|<||>|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props } + // } + // <|class [|MyClass|] { + // props: { + // name?: string; + // size?: number; + // }|> + // + // + // var x = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class MyClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + } + ] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } // } +// <|class [|{| isWriteAccess: true |}MyClass|] { +// props: { +// name?: string; +// size?: number; +// }|> // // -// var x = <[|MyClass|] name='hello'>; +// var x = <|<|<[|{| contextId: 1 |}MyClass|] name='hello'>|>|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props } + // } + // <|class [|MyClass|] { + // props: { + // name?: string; + // size?: number; + // }|> + // + // + // var x = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "class", - "name": "class MyClass", - "textSpan": { - "start": 145, - "length": 7 - }, - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MyClass", - "kind": "className" - } - ], - "contextSpan": { - "start": 139, - "length": 66 - } - }, - "references": [ - { - "textSpan": { - "start": 145, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 139, - "length": 66 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 217, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 240, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 216, - "length": 32 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "class", + "name": "class MyClass", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MyClass", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences5.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences5.baseline.jsonc index 13ca358fe3247..8f17789f5b6be 100644 --- a/tests/baselines/reference/tsxFindAllReferences5.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences5.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -10,171 +11,104 @@ // propString: string // optional?: boolean // } -// /*FIND ALL REFS*/declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// /*FIND ALL REFS*/<|declare function [|{| isWriteAccess: true, isDefinition: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // /*FIND ALL REFS*/<|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -187,173 +121,104 @@ // propString: string // optional?: boolean // } -// declare function /*FIND ALL REFS*/[|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// <|declare function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function /*FIND ALL REFS*/[|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -366,167 +231,126 @@ undefined // propString: string // optional?: boolean // } -// declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = ; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = /*FIND ALL REFS*/; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; +// let opt4 = ; + -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false - } + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|{| isWriteAccess: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <||>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -539,167 +363,126 @@ undefined // propString: string // optional?: boolean // } -// declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = ; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = /*FIND ALL REFS*/; +// let opt2 = ; +// let opt3 = ; +// let opt4 = ; + -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false - } + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|{| isWriteAccess: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <||>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -712,167 +495,148 @@ undefined // propString: string // optional?: boolean // } -// declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = ; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = /*FIND ALL REFS*/; +// let opt3 = ; +// let opt4 = ; + -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false - } + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|{| isWriteAccess: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <||>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = /*FIND ALL REFS*/; +// let opt4 = ; -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -885,167 +649,126 @@ undefined // propString: string // optional?: boolean // } -// declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = ; -// let opt4 = <[|Opt|] propx={100} propString="hi" />; +// <|declare function [|{| isWriteAccess: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <||>; +// let opt4 = <|<[|Opt|] propx={100} propString="hi" />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; +// let opt4 = /*FIND ALL REFS*/; -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -1058,161 +781,97 @@ undefined // propString: string // optional?: boolean // } -// declare function [|Opt|](attributes: OptionPropBag): JSX.Element; -// let opt = <[|Opt|] />; -// let opt1 = <[|Opt|] propx={100} propString />; -// let opt2 = <[|Opt|] propx={100} optional/>; -// let opt3 = <[|Opt|] wrong />; -// let opt4 = ; +// <|declare function [|{| isWriteAccess: true |}Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|Opt|] />|>; +// let opt1 = <|<[|Opt|] propx={100} propString />|>; +// let opt2 = <|<[|Opt|] propx={100} optional/>|>; +// let opt3 = <|<[|Opt|] wrong />|>; +// let opt4 = <||>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + // let opt4 = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function Opt(attributes: OptionPropBag): JSX.Element", - "textSpan": { - "start": 249, - "length": 3 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Opt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "attributes", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - } - ], - "contextSpan": { - "start": 232, - "length": 61 - } - }, - "references": [ - { - "textSpan": { - "start": 249, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 232, - "length": 61 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 305, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 304, - "length": 7 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 325, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 324, - "length": 30 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 368, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 367, - "length": 27 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 408, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 407, - "length": 13 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 434, - "length": 3 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 433, - "length": 35 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function Opt(attributes: OptionPropBag): JSX.Element", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Opt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "attributes", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences6.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences6.baseline.jsonc index 18cd7d6300f48..e0ed23e4e34d8 100644 --- a/tests/baselines/reference/tsxFindAllReferences6.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences6.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -11,65 +12,64 @@ // optional?: boolean // } // declare function Opt(attributes: OptionPropBag): JSX.Element; -// let opt = ; +// let opt = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) wrong: true", - "textSpan": { - "start": 309, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "wrong", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "true", - "kind": "keyword" - } - ] - }, - "references": [ - { - "textSpan": { - "start": 309, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "isWriteAccess": true, - "isDefinition": true - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // propx: number + // propString: string + // optional?: boolean + // } + // declare function Opt(attributes: OptionPropBag): JSX.Element; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) wrong: true", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "wrong", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "true", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences7.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences7.baseline.jsonc index 6c4d570088d53..94d6058f6ce0d 100644 --- a/tests/baselines/reference/tsxFindAllReferences7.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences7.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -6,115 +7,83 @@ // interface ElementAttributesProperty { props; } // } // interface OptionPropBag { -// /*FIND ALL REFS*/[|propx|]: number +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}propx|]: number|> // propString: string // optional?: boolean // } // declare function Opt(attributes: OptionPropBag): JSX.Element; // let opt = ; -// let opt1 = ; -// let opt2 = ; +// let opt1 = propString />; +// let opt2 = optional/>; // let opt3 = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) OptionPropBag.propx: number", - "textSpan": { - "start": 170, - "length": 5 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "OptionPropBag", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "propx", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 170, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 170, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 170, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 329, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 329, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 372, - "length": 5 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 372, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface OptionPropBag { + // /*FIND ALL REFS*/<|[|propx|]: number|> + // propString: string + // optional?: boolean + // } + // declare function Opt(attributes: OptionPropBag): JSX.Element; + // let opt = ; + // let opt1 = ; + // let opt2 = ; + // let opt3 = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) OptionPropBag.propx: number", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "OptionPropBag", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "propx", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences8.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences8.baseline.jsonc index 0ae6a37d22ce6..369db6d233a99 100644 --- a/tests/baselines/reference/tsxFindAllReferences8.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences8.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -15,241 +16,143 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// /*FIND ALL REFS*/declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// /*FIND ALL REFS*/<|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // /*FIND ALL REFS*/<|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -267,241 +170,143 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function /*FIND ALL REFS*/[|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|declare function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function /*FIND ALL REFS*/[|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -519,241 +324,143 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// /*FIND ALL REFS*/declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// /*FIND ALL REFS*/<|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // /*FIND ALL REFS*/declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -771,241 +478,143 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function /*FIND ALL REFS*/[|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function /*FIND ALL REFS*/MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -1023,241 +632,143 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// /*FIND ALL REFS*/declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// /*FIND ALL REFS*/<|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // /*FIND ALL REFS*/declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -1275,243 +786,173 @@ // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function /*FIND ALL REFS*/[|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false, - "isDefinition": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false, - "isDefinition": false - } +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true, isDefinition: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function /*FIND ALL REFS*/MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = /*FIND ALL REFS*/; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -1529,234 +970,173 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = ; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <||>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = /*FIND ALL REFS*/; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -1774,234 +1154,173 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = ; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <||>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = /*FIND ALL REFS*/{}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -2019,234 +1338,173 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = {}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = /*FIND ALL REFS*/{}} ignore-prop />; +// let opt = ; +// let opt = ; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -2264,234 +1522,173 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = {}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = /*FIND ALL REFS*/; +// let opt = ; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -2509,234 +1706,173 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = ; -// let opt = <[|MainButton|] wrong />; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <||>; +// let opt = <|<[|MainButton|] wrong />|>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = /*FIND ALL REFS*/; + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -2754,228 +1890,136 @@ undefined // interface LinkProps extends ClickableProps { // goTo: string; // } -// declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element; -// declare function [|MainButton|](linkProps: LinkProps): JSX.Element; -// declare function [|MainButton|](props: ButtonProps | LinkProps): JSX.Element; -// let opt = <[|MainButton|] />; -// let opt = <[|MainButton|] children="chidlren" />; -// let opt = <[|MainButton|] onClick={()=>{}} />; -// let opt = <[|MainButton|] onClick={()=>{}} ignore-prop />; -// let opt = <[|MainButton|] goTo="goTo" />; -// let opt = ; - -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "function", - "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", - "textSpan": { - "start": 411, - "length": 10 - }, - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "MainButton", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "buttonProps", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ButtonProps", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 394, - "length": 67 - } - }, - "references": [ - { - "textSpan": { - "start": 411, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 394, - "length": 67 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 479, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 462, - "length": 63 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 543, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 526, - "length": 73 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 611, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 610, - "length": 14 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 637, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 636, - "length": 34 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 683, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 682, - "length": 31 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 726, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 725, - "length": 43 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 781, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 780, - "length": 26 - }, - "isWriteAccess": false - }, - { - "textSpan": { - "start": 819, - "length": 10 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 818, - "length": 20 - }, - "isWriteAccess": false - } +// <|declare function [|{| isWriteAccess: true |}MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|{| isWriteAccess: true |}MainButton|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButton|] />|>; +// let opt = <|<[|MainButton|] children="chidlren" />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButton|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButton|] goTo="goTo" />|>; +// let opt = <||>; + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // goTo: string; + // } + // <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "function", + "name": "function MainButton(buttonProps: ButtonProps): JSX.Element (+2 overloads)", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "MainButton", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "buttonProps", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ButtonProps", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overloads", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferences9.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferences9.baseline.jsonc index af91e657757ea..43b1c36a04023 100644 --- a/tests/baselines/reference/tsxFindAllReferences9.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferences9.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -13,7 +14,7 @@ // onClick(event?: React.MouseEvent): void; // } // interface LinkProps extends ClickableProps { -// /*FIND ALL REFS*/[|goTo|]: string; +// /*FIND ALL REFS*/<|[|{| isDefinition: true |}goTo|]: string;|> // } // declare function MainButton(buttonProps: ButtonProps): JSX.Element; // declare function MainButton(linkProps: LinkProps): JSX.Element; @@ -22,105 +23,87 @@ // let opt = ; // let opt = {}} />; // let opt = {}} ignore-prop />; -// let opt = ; -// let opt = ; +// let opt = />; +// let opt = ; // let opt = ; -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "property", - "name": "(property) LinkProps.goTo: string", - "textSpan": { - "start": 378, - "length": 4 - }, - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "LinkProps", - "kind": "interfaceName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "goTo", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "contextSpan": { - "start": 378, - "length": 13 - } - }, - "references": [ - { - "textSpan": { - "start": 378, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 378, - "length": 13 - }, - "isWriteAccess": false, - "isDefinition": true - }, - { - "textSpan": { - "start": 792, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 792, - "length": 11 - }, - "isWriteAccess": true, - "isDefinition": false - }, - { - "textSpan": { - "start": 830, - "length": 4 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "isWriteAccess": true, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // interface ClickableProps { + // children?: string; + // className?: string; + // } + // interface ButtonProps extends ClickableProps { + // onClick(event?: React.MouseEvent): void; + // } + // interface LinkProps extends ClickableProps { + // /*FIND ALL REFS*/<|[|goTo|]: string;|> + // } + // declare function MainButton(buttonProps: ButtonProps): JSX.Element; + // declare function MainButton(linkProps: LinkProps): JSX.Element; + // declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; + // let opt = ; + // let opt = ; + // let opt = {}} />; + // let opt = {}} ignore-prop />; + // let opt = ; + // let opt = ; + // let opt = ; + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "property", + "name": "(property) LinkProps.goTo: string", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LinkProps", + "kind": "interfaceName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "goTo", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferencesUnionElementType1.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferencesUnionElementType1.baseline.jsonc index 1326d84315162..33eed955833cf 100644 --- a/tests/baselines/reference/tsxFindAllReferencesUnionElementType1.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferencesUnionElementType1.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -11,275 +12,257 @@ // function SFC2(prop: { x: boolean }) { // return

World

; // } -// /*FIND ALL REFS*/var [|SFCComp|] = SFC1 || SFC2; -// <[|SFCComp|] x={ "hi" } /> +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}SFCComp|] = SFC1 || SFC2;|> +// <|<[|SFCComp|] x={ "hi" } />|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", - "textSpan": { - "start": 282, - "length": 7 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SFCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 278, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 282, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 278, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 307, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 306, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // function SFC1(prop: { x: number }) { + // return
hello
; + // }; + // function SFC2(prop: { x: boolean }) { + // return

World

; + // } + // /*FIND ALL REFS*/<|var [|SFCComp|] = SFC1 || SFC2;|> + // + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SFCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -293,277 +276,276 @@ // function SFC2(prop: { x: boolean }) { // return

World

; // } -// var /*FIND ALL REFS*/[|SFCComp|] = SFC1 || SFC2; -// <[|SFCComp|] x={ "hi" } /> +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}SFCComp|] = SFC1 || SFC2;|> +// <|<[|SFCComp|] x={ "hi" } />|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", - "textSpan": { - "start": 282, - "length": 7 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SFCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 278, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 282, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 278, - "length": 27 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 307, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 306, - "length": 22 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // function SFC1(prop: { x: number }) { + // return
hello
; + // }; + // function SFC2(prop: { x: boolean }) { + // return

World

; + // } + // <|var /*FIND ALL REFS*/[|SFCComp|] = SFC1 || SFC2;|> + // + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SFCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] + } + ] + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// function SFC1(prop: { x: number }) { +// return
hello
; +// }; +// function SFC2(prop: { x: boolean }) { +// return

World

; +// } +// var SFCComp = SFC1 || SFC2; +// /*FIND ALL REFS*/ -undefined + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // declare module JSX { // interface Element { } @@ -577,269 +559,250 @@ undefined // function SFC2(prop: { x: boolean }) { // return

World

; // } -// var [|SFCComp|] = SFC1 || SFC2; -// +// <|var [|{| isWriteAccess: true |}SFCComp|] = SFC1 || SFC2;|> +// <||> + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // declare module JSX { + // interface Element { } + // interface IntrinsicElements { + // } + // interface ElementAttributesProperty { props; } + // } + // function SFC1(prop: { x: number }) { + // return
hello
; + // }; + // function SFC2(prop: { x: boolean }) { + // return

World

; + // } + // <|var [|SFCComp|] = SFC1 || SFC2;|> + // -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", - "textSpan": { - "start": 282, - "length": 7 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SFCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "prop", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "x", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSX", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "Element", - "kind": "interfaceName" - }, - { - "text": ")", - "kind": "punctuation" - } - ], - "contextSpan": { - "start": 278, - "length": 27 - } - }, - "references": [ - { - "textSpan": { - "start": 282, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 278, - "length": 27 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 307, - "length": 7 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 306, - "length": 22 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var SFCComp: ((prop: {\n x: number;\n}) => JSX.Element) | ((prop: {\n x: boolean;\n}) => JSX.Element)", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SFCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "prop", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSX", + "kind": "moduleName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "Element", + "kind": "interfaceName" + }, + { + "text": ")", + "kind": "punctuation" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxFindAllReferencesUnionElementType2.baseline.jsonc b/tests/baselines/reference/tsxFindAllReferencesUnionElementType2.baseline.jsonc index a1fbfb0049361..3f23f5b99c69a 100644 --- a/tests/baselines/reference/tsxFindAllReferencesUnionElementType2.baseline.jsonc +++ b/tests/baselines/reference/tsxFindAllReferencesUnionElementType2.baseline.jsonc @@ -1,3 +1,4 @@ +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // class RC1 extends React.Component<{}, {}> { // render() { @@ -10,91 +11,72 @@ // } // private method() { } // } -// /*FIND ALL REFS*/var [|RCComp|] = RC1 || RC2; -// <[|RCComp|] /> +// /*FIND ALL REFS*/<|var [|{| isWriteAccess: true, isDefinition: true |}RCComp|] = RC1 || RC2;|> +// <|<[|RCComp|] />|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var RCComp: typeof RC1", - "textSpan": { - "start": 205, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RC1", - "kind": "className" - } - ], - "contextSpan": { - "start": 201, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 205, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 201, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 227, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 226, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // class RC1 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // } + // class RC2 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // private method() { } + // } + // /*FIND ALL REFS*/<|var [|RCComp|] = RC1 || RC2;|> + // + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var RCComp: typeof RC1", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RC1", + "kind": "className" + } ] - } -] + } + ] + + +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // class RC1 extends React.Component<{}, {}> { // render() { @@ -107,93 +89,72 @@ // } // private method() { } // } -// var /*FIND ALL REFS*/[|RCComp|] = RC1 || RC2; -// <[|RCComp|] /> +// <|var /*FIND ALL REFS*/[|{| isWriteAccess: true, isDefinition: true |}RCComp|] = RC1 || RC2;|> +// <|<[|RCComp|] />|> -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var RCComp: typeof RC1", - "textSpan": { - "start": 205, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RC1", - "kind": "className" - } - ], - "contextSpan": { - "start": 201, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 205, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 201, - "length": 24 - }, - "isWriteAccess": true, - "isDefinition": true - }, - { - "textSpan": { - "start": 227, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 226, - "length": 10 - }, - "isWriteAccess": false, - "isDefinition": false - } + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // class RC1 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // } + // class RC2 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // private method() { } + // } + // <|var /*FIND ALL REFS*/[|RCComp|] = RC1 || RC2;|> + // + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var RCComp: typeof RC1", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RC1", + "kind": "className" + } ] - } -] + } + ] + -undefined +// === findAllReferences === // === /tests/cases/fourslash/file.tsx === // class RC1 extends React.Component<{}, {}> { // render() { @@ -206,85 +167,83 @@ undefined // } // private method() { } // } -// var [|RCComp|] = RC1 || RC2; -// +// var RCComp = RC1 || RC2; +// /*FIND ALL REFS*/ + + + +// === findAllReferences === +// === /tests/cases/fourslash/file.tsx === +// class RC1 extends React.Component<{}, {}> { +// render() { +// return null; +// } +// } +// class RC2 extends React.Component<{}, {}> { +// render() { +// return null; +// } +// private method() { } +// } +// <|var [|{| isWriteAccess: true |}RCComp|] = RC1 || RC2;|> +// <||> + + // === Definitions === + // === /tests/cases/fourslash/file.tsx === + // class RC1 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // } + // class RC2 extends React.Component<{}, {}> { + // render() { + // return null; + // } + // private method() { } + // } + // <|var [|RCComp|] = RC1 || RC2;|> + // -[ - { - "definition": { - "containerKind": "", - "containerName": "", - "fileName": "/tests/cases/fourslash/file.tsx", - "kind": "var", - "name": "var RCComp: typeof RC1", - "textSpan": { - "start": 205, - "length": 6 - }, - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RCComp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RC1", - "kind": "className" - } - ], - "contextSpan": { - "start": 201, - "length": 24 - } - }, - "references": [ - { - "textSpan": { - "start": 205, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 201, - "length": 24 - }, - "isWriteAccess": true - }, - { - "textSpan": { - "start": 227, - "length": 6 - }, - "fileName": "/tests/cases/fourslash/file.tsx", - "contextSpan": { - "start": 226, - "length": 10 - }, - "isWriteAccess": false - } + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "var", + "name": "var RCComp: typeof RC1", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RCComp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RC1", + "kind": "className" + } ] - } -] \ No newline at end of file + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionClassInDifferentFile.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionClassInDifferentFile.baseline.jsonc new file mode 100644 index 0000000000000..53ea464a11a0b --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionClassInDifferentFile.baseline.jsonc @@ -0,0 +1,19 @@ +// === getDefinitionAtPosition === +// === /tests/cases/fourslash/C.tsx === +// <|export default class [|C|] {}|> + +// === /tests/cases/fourslash/a.tsx === +// import C from "./C"; +// const foo = ; + + // === Details === + [ + { + "kind": "class", + "name": "C", + "containerName": "\"/tests/cases/fourslash/C\"", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionClasses.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionClasses.baseline.jsonc new file mode 100644 index 0000000000000..e62985ea95c19 --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionClasses.baseline.jsonc @@ -0,0 +1,89 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { } +// interface ElementAttributesProperty { props; } +// } +// <|class [|MyClass|] { +// props: { +// foo: string; +// } +// }|> +// var x = ; +// var y = ; +// var z = ; + + // === Details === + [ + { + "kind": "class", + "name": "MyClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { } +// interface ElementAttributesProperty { props; } +// } +// class MyClass { +// props: { +// <|[|foo|]: string;|> +// } +// } +// var x = ; +// var y = ; +// var z = ; + + // === Details === + [ + { + "kind": "property", + "name": "foo", + "containerName": "__type", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { } +// interface ElementAttributesProperty { props; } +// } +// <|class [|MyClass|] { +// props: { +// foo: string; +// } +// }|> +// var x = ; +// var y = ; +// var z = ; + + // === Details === + [ + { + "kind": "class", + "name": "MyClass", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionIntrinsics.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionIntrinsics.baseline.jsonc new file mode 100644 index 0000000000000..f339adf34b40f --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionIntrinsics.baseline.jsonc @@ -0,0 +1,89 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// <|[|div|]: { +// name?: string; +// isOpen?: boolean; +// };|> +// span: { n: string; }; +// } +// } +// var x = ; +// var y = ; +// var z =
; + + // === Details === + [ + { + "kind": "property", + "name": "div", + "containerName": "JSX.IntrinsicElements", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// div: { +// name?: string; +// isOpen?: boolean; +// }; +// <|[|span|]: { n: string; };|> +// } +// } +// var x =
; +// var y = ; +// var z =
; + + // === Details === + [ + { + "kind": "property", + "name": "span", + "containerName": "JSX.IntrinsicElements", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// div: { +// <|[|name|]?: string;|> +// isOpen?: boolean; +// }; +// span: { n: string; }; +// } +// } +// var x =
; +// var y = ; +// var z =
; + + // === Details === + [ + { + "kind": "property", + "name": "name", + "containerName": "__type", + "isLocal": false, + "isAmbient": true, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionStatelessFunction1.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionStatelessFunction1.baseline.jsonc new file mode 100644 index 0000000000000..f42f24bf4a1b2 --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionStatelessFunction1.baseline.jsonc @@ -0,0 +1,199 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: "hell" +// optional?: boolean +// } +// <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "function", + "name": "Opt", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: "hell" +// optional?: boolean +// } +// <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "function", + "name": "Opt", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: "hell" +// optional?: boolean +// } +// <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "function", + "name": "Opt", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: "hell" +// optional?: boolean +// } +// <|declare function [|Opt|](attributes: OptionPropBag): JSX.Element;|> +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "function", + "name": "Opt", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// <|[|propx|]: number|> +// propString: "hell" +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "property", + "name": "propx", + "containerName": "OptionPropBag", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: "hell" +// <|[|optional|]?: boolean|> +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; + + // === Details === + [ + { + "kind": "property", + "name": "optional", + "containerName": "OptionPropBag", + "isLocal": false, + "isAmbient": false, + "unverified": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionStatelessFunction2.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionStatelessFunction2.baseline.jsonc new file mode 100644 index 0000000000000..78d2f0e3239e7 --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionStatelessFunction2.baseline.jsonc @@ -0,0 +1,255 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt =
; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt =
; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt =
{}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt =
{}} ignore-prop />; +// let opt = ; +// let opt = ; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// <|declare function [|MainButton|](linkProps: LinkProps): JSX.Element;|> +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt =
; +// let opt = ; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] + + + +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButton|](buttonProps: ButtonProps): JSX.Element;|> +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt =
; + + // === Details === + [ + { + "kind": "function", + "name": "MainButton", + "containerName": "", + "isLocal": false, + "isAmbient": true, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionUnionElementType1.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionUnionElementType1.baseline.jsonc new file mode 100644 index 0000000000000..ee3fbaecd3273 --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionUnionElementType1.baseline.jsonc @@ -0,0 +1,40 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// <|function [|{| defId: 1 |}SFC1|](prop: { x: number }) { +// return
hello
; +// }|>; +// function SFC2(prop: { x: boolean }) { +// return

World

; +// } +// <|var [|{| defId: 0 |}SFCComp|] = SFC1 || SFC2;|> +// + + // === Details === + [ + { + "defId": 0, + "kind": "var", + "name": "SFCComp", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + }, + { + "defId": 1, + "kind": "function", + "name": "SFC1", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxGoToDefinitionUnionElementType2.baseline.jsonc b/tests/baselines/reference/tsxGoToDefinitionUnionElementType2.baseline.jsonc new file mode 100644 index 0000000000000..4bb0b5431e014 --- /dev/null +++ b/tests/baselines/reference/tsxGoToDefinitionUnionElementType2.baseline.jsonc @@ -0,0 +1,28 @@ +// === goToDefinition === +// === /tests/cases/fourslash/file.tsx === +// class RC1 extends React.Component<{}, {}> { +// render() { +// return null; +// } +// } +// class RC2 extends React.Component<{}, {}> { +// render() { +// return null; +// } +// private method() { } +// } +// <|var [|RCComp|] = RC1 || RC2;|> +// + + // === Details === + [ + { + "kind": "var", + "name": "RCComp", + "containerName": "", + "isLocal": false, + "isAmbient": false, + "unverified": false, + "failedAliasResolution": false + } + ] \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename1.baseline.jsonc b/tests/baselines/reference/tsxRename1.baseline.jsonc new file mode 100644 index 0000000000000..97b57a5cac6f5 --- /dev/null +++ b/tests/baselines/reference/tsxRename1.baseline.jsonc @@ -0,0 +1,29 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// /*RENAME*/<|[|divRENAME|]: { +// name?: string; +// isOpen?: boolean; +// };|> +// span: { n: string; }; +// } +// } +// var x = <|<[|divRENAME|] />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// <|[|divRENAME|]: { +// name?: string; +// isOpen?: boolean; +// };|> +// span: { n: string; }; +// } +// } +// var x = <||>; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename2.baseline.jsonc b/tests/baselines/reference/tsxRename2.baseline.jsonc new file mode 100644 index 0000000000000..c52e2ee901875 --- /dev/null +++ b/tests/baselines/reference/tsxRename2.baseline.jsonc @@ -0,0 +1,29 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// div: { +// /*RENAME*/<|[|nameRENAME|]?: string;|> +// isOpen?: boolean; +// }; +// span: { n: string; }; +// } +// } +// var x =
/>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// div: { +// <|[|nameRENAME|]?: string;|> +// isOpen?: boolean; +// }; +// span: { n: string; }; +// } +// } +// var x =
/>; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename3.baseline.jsonc b/tests/baselines/reference/tsxRename3.baseline.jsonc new file mode 100644 index 0000000000000..4edc6faf7a25f --- /dev/null +++ b/tests/baselines/reference/tsxRename3.baseline.jsonc @@ -0,0 +1,35 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// /*RENAME*/<|[|nameRENAME|]?: string;|> +// size?: number; +// } +// +// +// var x = />; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// <|[|nameRENAME|]?: string;|> +// size?: number; +// } +// +// +// var x = />; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename4.baseline.jsonc b/tests/baselines/reference/tsxRename4.baseline.jsonc new file mode 100644 index 0000000000000..d9a9458ee0c19 --- /dev/null +++ b/tests/baselines/reference/tsxRename4.baseline.jsonc @@ -0,0 +1,65 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element {} +// interface IntrinsicElements { +// div: {}; +// } +// } +// <|class /*RENAME*/[|MyClassRENAME|] {}|> +// +// <|<|<[|{| contextId: 1 |}MyClassRENAME|]>|>|>; +// <|<[|MyClassRENAME|]/>|>; +// +//
+ + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element {} +// interface IntrinsicElements { +// div: {}; +// } +// } +// <|class [|MyClassRENAME|] {}|> +// +// <|<||>|>; +// <|<[|MyClassRENAME|]/>|>; +// +//
+ + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element {} +// interface IntrinsicElements { +// div: {}; +// } +// } +// <|class [|MyClassRENAME|] {}|> +// +// <|<|<[|{| contextId: 1 |}MyClassRENAME|]>|>|>; +// <|<[|MyClassRENAME|]/>|>; +// +//
+ + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element {} +// interface IntrinsicElements { +// div: {}; +// } +// } +// <|class [|MyClassRENAME|] {}|> +// +// <|<|<[|{| contextId: 1 |}MyClassRENAME|]>|>|>; +// <||>; +// +//
\ No newline at end of file diff --git a/tests/baselines/reference/tsxRename5.baseline.jsonc b/tests/baselines/reference/tsxRename5.baseline.jsonc new file mode 100644 index 0000000000000..980e18ba88d7c --- /dev/null +++ b/tests/baselines/reference/tsxRename5.baseline.jsonc @@ -0,0 +1,35 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// name?: string; +// size?: number; +// } +// +// <|var /*RENAME*/[|nnRENAME|]: string;|> +// var x = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props } +// } +// class MyClass { +// props: { +// name?: string; +// size?: number; +// } +// +// <|var [|nnRENAME|]: string;|> +// var x = ; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename6.baseline.jsonc b/tests/baselines/reference/tsxRename6.baseline.jsonc new file mode 100644 index 0000000000000..6c8b2a56a2d7b --- /dev/null +++ b/tests/baselines/reference/tsxRename6.baseline.jsonc @@ -0,0 +1,129 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function /*RENAME*/[|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|OptRENAME|] />|>; +// let opt1 = <|<[|OptRENAME|] propx={100} propString />|>; +// let opt2 = <|<[|OptRENAME|] propx={100} optional/>|>; +// let opt3 = <|<[|OptRENAME|] wrong />|>; +// let opt4 = <|<[|OptRENAME|] propx={100} propString="hi" />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <||>; +// let opt1 = <|<[|OptRENAME|] propx={100} propString />|>; +// let opt2 = <|<[|OptRENAME|] propx={100} optional/>|>; +// let opt3 = <|<[|OptRENAME|] wrong />|>; +// let opt4 = <|<[|OptRENAME|] propx={100} propString="hi" />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|OptRENAME|] />|>; +// let opt1 = <||>; +// let opt2 = <|<[|OptRENAME|] propx={100} optional/>|>; +// let opt3 = <|<[|OptRENAME|] wrong />|>; +// let opt4 = <|<[|OptRENAME|] propx={100} propString="hi" />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|OptRENAME|] />|>; +// let opt1 = <|<[|OptRENAME|] propx={100} propString />|>; +// let opt2 = <||>; +// let opt3 = <|<[|OptRENAME|] wrong />|>; +// let opt4 = <|<[|OptRENAME|] propx={100} propString="hi" />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|OptRENAME|] />|>; +// let opt1 = <|<[|OptRENAME|] propx={100} propString />|>; +// let opt2 = <|<[|OptRENAME|] propx={100} optional/>|>; +// let opt3 = <||>; +// let opt4 = <|<[|OptRENAME|] propx={100} propString="hi" />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// <|declare function [|OptRENAME|](attributes: OptionPropBag): JSX.Element;|> +// let opt = <|<[|OptRENAME|] />|>; +// let opt1 = <|<[|OptRENAME|] propx={100} propString />|>; +// let opt2 = <|<[|OptRENAME|] propx={100} optional/>|>; +// let opt3 = <|<[|OptRENAME|] wrong />|>; +// let opt4 = <||>; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename7.baseline.jsonc b/tests/baselines/reference/tsxRename7.baseline.jsonc new file mode 100644 index 0000000000000..35c1925bf6fc7 --- /dev/null +++ b/tests/baselines/reference/tsxRename7.baseline.jsonc @@ -0,0 +1,60 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// /*RENAME*/<|[|propxRENAME|]: number|> +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = propString />; +// let opt2 = optional/>; +// let opt3 = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// <|[|propxRENAME|]: number|> +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = propString />; +// let opt2 = optional/>; +// let opt3 = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// <|[|propxRENAME|]: number|> +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = propString />; +// let opt2 = optional/>; +// let opt3 = ; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename8.baseline.jsonc b/tests/baselines/reference/tsxRename8.baseline.jsonc new file mode 100644 index 0000000000000..1b581e1b33e8a --- /dev/null +++ b/tests/baselines/reference/tsxRename8.baseline.jsonc @@ -0,0 +1,19 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface OptionPropBag { +// propx: number +// propString: string +// optional?: boolean +// } +// declare function Opt(attributes: OptionPropBag): JSX.Element; +// let opt = ; +// let opt1 = ; +// let opt2 = ; +// let opt3 = ; +// let opt4 = ; \ No newline at end of file diff --git a/tests/baselines/reference/tsxRename9.baseline.jsonc b/tests/baselines/reference/tsxRename9.baseline.jsonc new file mode 100644 index 0000000000000..0b0e12bb205e1 --- /dev/null +++ b/tests/baselines/reference/tsxRename9.baseline.jsonc @@ -0,0 +1,477 @@ +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// /*RENAME*/<|[|onClickRENAME|](event?: React.MouseEvent): void;|> +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}}|> />; +// let opt = {}}|> ignore-prop />; +// let opt = ; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// <|[|onClickRENAME|](event?: React.MouseEvent): void;|> +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}}|> />; +// let opt = {}}|> ignore-prop />; +// let opt = ; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// <|[|onClickRENAME|](event?: React.MouseEvent): void;|> +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}}|> />; +// let opt = {}}|> ignore-prop />; +// let opt = ; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// /*RENAME*/<|[|goToRENAME|]: string;|> +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = />; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// <|[|goToRENAME|]: string;|> +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = />; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function /*RENAME*/[|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function /*RENAME*/[|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function /*RENAME*/[|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <||>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <||>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <||>; +// let opt = <|<[|MainButtonRENAME|] wrong />|>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// <|declare function [|MainButtonRENAME|](buttonProps: ButtonProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](linkProps: LinkProps): JSX.Element;|> +// <|declare function [|MainButtonRENAME|](props: ButtonProps | LinkProps): JSX.Element;|> +// let opt = <|<[|MainButtonRENAME|] />|>; +// let opt = <|<[|MainButtonRENAME|] children="chidlren" />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} />|>; +// let opt = <|<[|MainButtonRENAME|] onClick={()=>{}} ignore-prop />|>; +// let opt = <|<[|MainButtonRENAME|] goTo="goTo" />|>; +// let opt = <||>; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} /*RENAME*/[|ignore-propRENAME|] />; +// let opt = ; +// let opt = ; + + + +// === findRenameLocations === +// === /tests/cases/fourslash/file.tsx === +// declare module JSX { +// interface Element { } +// interface IntrinsicElements { +// } +// interface ElementAttributesProperty { props; } +// } +// interface ClickableProps { +// children?: string; +// className?: string; +// } +// interface ButtonProps extends ClickableProps { +// onClick(event?: React.MouseEvent): void; +// } +// interface LinkProps extends ClickableProps { +// goTo: string; +// } +// declare function MainButton(buttonProps: ButtonProps): JSX.Element; +// declare function MainButton(linkProps: LinkProps): JSX.Element; +// declare function MainButton(props: ButtonProps | LinkProps): JSX.Element; +// let opt = ; +// let opt = ; +// let opt = {}} />; +// let opt = {}} ignore-prop />; +// let opt = ; +// let opt = ; \ No newline at end of file diff --git a/tests/baselines/reference/typedefinition01.baseline.jsonc b/tests/baselines/reference/typedefinition01.baseline.jsonc new file mode 100644 index 0000000000000..1356072b3667b --- /dev/null +++ b/tests/baselines/reference/typedefinition01.baseline.jsonc @@ -0,0 +1,17 @@ +// === goToType === +// === /tests/cases/fourslash/server/a.ts === +// export class [|Foo|] {} + +// === /tests/cases/fourslash/server/b.ts === +// import n = require('./a'); +// var x/*GOTO TYPE*/ = new n.Foo(); + + // === Details === + [ + { + "containerKind": "", + "containerName": "", + "kind": "", + "name": "" + } + ] \ No newline at end of file diff --git a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts index 6530a0e0c9975..f4f2e8446ceb9 100644 --- a/tests/cases/fourslash/ambientShorthandGotoDefinition.ts +++ b/tests/cases/fourslash/ambientShorthandGotoDefinition.ts @@ -11,22 +11,13 @@ ////[|foo/*useFoo*/|]([|bar/*useBar*/|], [|baz/*useBaz*/|], [|bang/*useBang*/|]); verify.quickInfoAt("useFoo", "(alias) module \"jquery\"\nimport foo"); -verify.goToDefinition({ - useFoo: "module", - importFoo: "module" -}); - verify.quickInfoAt("useBar", "(alias) module \"jquery\"\nimport bar"); -verify.goToDefinition("useBar", "module"); - verify.quickInfoAt("useBaz", "(alias) module \"jquery\"\nimport baz"); -verify.goToDefinition({ - useBaz: "importBaz", - importBaz: "module" -}); - verify.quickInfoAt("useBang", "(alias) module \"jquery\"\nimport bang = require(\"jquery\")"); -verify.goToDefinition({ - useBang: "module", - importBang: "module" -}); + +verify.baselineGoToDefinition( + "useFoo", "importFoo", + "useBar", + "useBaz", "importBaz", + "useBang", "importBang" +); \ No newline at end of file diff --git a/tests/cases/fourslash/asConstRefsNoErrors1.ts b/tests/cases/fourslash/asConstRefsNoErrors1.ts index 6bb63914c8c4c..ed23269322418 100644 --- a/tests/cases/fourslash/asConstRefsNoErrors1.ts +++ b/tests/cases/fourslash/asConstRefsNoErrors1.ts @@ -4,5 +4,5 @@ //// type = 'Text' as /**/const; ////} -verify.goToDefinition("", []); +verify.baselineGoToDefinition(""); verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/asConstRefsNoErrors2.ts b/tests/cases/fourslash/asConstRefsNoErrors2.ts index 74ea6a4e8929c..fea67eda1229e 100644 --- a/tests/cases/fourslash/asConstRefsNoErrors2.ts +++ b/tests/cases/fourslash/asConstRefsNoErrors2.ts @@ -4,5 +4,5 @@ //// type = 'Text'; ////} -verify.goToDefinition("", []); +verify.baselineGoToDefinition(""); verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/asConstRefsNoErrors3.ts b/tests/cases/fourslash/asConstRefsNoErrors3.ts index be450befafd38..95055958e7ab0 100644 --- a/tests/cases/fourslash/asConstRefsNoErrors3.ts +++ b/tests/cases/fourslash/asConstRefsNoErrors3.ts @@ -6,5 +6,5 @@ //// type = (/** @type {/**/const} */'Text'); ////} -verify.goToDefinition("", []); +verify.baselineGoToDefinition(""); verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/cancellationWhenfindingAllRefsOnDefinition.ts b/tests/cases/fourslash/cancellationWhenfindingAllRefsOnDefinition.ts index 4017383e2e5eb..e1385856f2e4c 100644 --- a/tests/cases/fourslash/cancellationWhenfindingAllRefsOnDefinition.ts +++ b/tests/cases/fourslash/cancellationWhenfindingAllRefsOnDefinition.ts @@ -23,17 +23,18 @@ ////second./*2*/start(); ////second.stop(); -let count = 1; +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: '1' }, + { + type: "customWork", + work: () => { + cancellation.setCancelled(); + verifyOperationIsCancelled(() => verify.baselineFindAllReferences('1')); -checkRefs(); - -cancellation.setCancelled(); -verifyOperationIsCancelled(checkRefs); - -// verify that internal state is still correct -cancellation.resetCancelled(); -checkRefs(); - -function checkRefs() { - verify.baselineFindAllReferencesMulti(count++, '1'); -} + // verify that internal state is still correct + cancellation.resetCancelled(); + return "cancelled findAllReferences"; + } + }, + { type: "findAllReferences", markerOrRange: '1' }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/definition.ts b/tests/cases/fourslash/definition.ts index f91d8a9e34610..ff6a1b8606402 100644 --- a/tests/cases/fourslash/definition.ts +++ b/tests/cases/fourslash/definition.ts @@ -7,4 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/definitionNameOnEnumMember.ts b/tests/cases/fourslash/definitionNameOnEnumMember.ts index 5529dc2bb5515..251982c1b13d9 100644 --- a/tests/cases/fourslash/definitionNameOnEnumMember.ts +++ b/tests/cases/fourslash/definitionNameOnEnumMember.ts @@ -7,5 +7,4 @@ ////} ////var enumMember = e.[|/*1*/thirdMember|]; -goTo.marker("1"); -verify.goToDefinitionName("thirdMember", "e"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties1.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties1.ts index 0c07edea50691..04d8c3ccaeed2 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties1.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties1.ts @@ -6,4 +6,4 @@ //// [|propName|]: string; //// } -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties2.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties2.ts index 3327c36b76035..9717ec87e12a8 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties2.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties2.ts @@ -6,4 +6,4 @@ //// [|propName|]: string; //// } -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties3.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties3.ts index 11625df144244..776f563d99166 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties3.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties3.ts @@ -10,4 +10,4 @@ //// v.[|propName|]; //// v.[|doStuff|](); -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties4.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties4.ts index 1c78233554ad9..ebd4acd3e3151 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties4.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties4.ts @@ -10,4 +10,4 @@ //// c.[|doStuff|](); //// c.[|propName|]; -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties5.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties5.ts index 4fdf4a689ac2c..814de0effc29f 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties5.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties5.ts @@ -14,4 +14,4 @@ //// var d: D; //// d.[|prop1|]; -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtInheritedProperties6.ts b/tests/cases/fourslash/documentHighlightAtInheritedProperties6.ts index 6eb7ae16723cb..382c350396fc9 100644 --- a/tests/cases/fourslash/documentHighlightAtInheritedProperties6.ts +++ b/tests/cases/fourslash/documentHighlightAtInheritedProperties6.ts @@ -14,8 +14,4 @@ //// var d: D; //// d.[|prop1|]; -const [Cprop0, Cprop1, Dprop0, Dprop1, prop1Use] = test.ranges(); -verify.rangesAreDocumentHighlights([Cprop0]); -verify.rangesAreDocumentHighlights([Dprop0]); -verify.rangesAreDocumentHighlights([Cprop1]); -verify.rangesAreDocumentHighlights([Dprop1, prop1Use]); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration1.ts b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration1.ts index 219ea427b9ca4..76920a8dfab21 100644 --- a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration1.ts +++ b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration1.ts @@ -17,4 +17,4 @@ //// } //// } -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration2.ts b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration2.ts index 199f59fc8a378..7d0235673fb3f 100644 --- a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration2.ts +++ b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration2.ts @@ -18,4 +18,4 @@ //// } //// } -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration3.ts b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration3.ts index 7bcd44a5425e4..09370d1342aeb 100644 --- a/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration3.ts +++ b/tests/cases/fourslash/documentHighlightAtParameterPropertyDeclaration3.ts @@ -18,4 +18,4 @@ //// } //// } -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts b/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts index 98d45f88ceb73..26c44710bbb41 100644 --- a/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts +++ b/tests/cases/fourslash/documentHighlightDefaultInKeyword.ts @@ -3,6 +3,4 @@ ////[|case|] ////[|default|] -const [defaultKeywordRange, caseKeywordRange] = test.ranges(); -verify.noDocumentHighlights(defaultKeywordRange); -verify.noDocumentHighlights(caseKeywordRange); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts b/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts index e30366bcf27f8..854142444179f 100644 --- a/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts +++ b/tests/cases/fourslash/documentHighlightDefaultInSwitch.ts @@ -9,5 +9,4 @@ ////} const [r0, r1, r2, r3, r4] = test.ranges(); -verify.documentHighlightsOf(r1, [r0, r1, r2, r3, r4]); -verify.documentHighlightsOf(r4, [r0, r1, r2, r3, r4]); +verify.baselineDocumentHighlights([r1, r4]); diff --git a/tests/cases/fourslash/documentHighlightInExport1.ts b/tests/cases/fourslash/documentHighlightInExport1.ts index bf5bc7cfa94b9..a72ee52c56874 100644 --- a/tests/cases/fourslash/documentHighlightInExport1.ts +++ b/tests/cases/fourslash/documentHighlightInExport1.ts @@ -4,7 +4,4 @@ //// [|export|] { [|C|] [|as|] [|D|] }; const [classRange, exportKeywordRange, propertyNameRange, asKeywordRange, nameRange] = test.ranges(); -verify.noDocumentHighlights(exportKeywordRange); -verify.documentHighlightsOf(propertyNameRange, [classRange, propertyNameRange, nameRange]); -verify.noDocumentHighlights(asKeywordRange); -verify.documentHighlightsOf(nameRange, [nameRange]); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightInKeyword.ts b/tests/cases/fourslash/documentHighlightInKeyword.ts index b24d5827ecae3..ccf8ec7fbcce5 100644 --- a/tests/cases/fourslash/documentHighlightInKeyword.ts +++ b/tests/cases/fourslash/documentHighlightInKeyword.ts @@ -8,6 +8,4 @@ //// ////for (let a [|in|] {}) {} -for (let range of test.ranges()) { - verify.noDocumentHighlights(range); -} +verify.baselineDocumentHighlights(); \ No newline at end of file diff --git a/tests/cases/fourslash/documentHighlightInTypeExport.ts b/tests/cases/fourslash/documentHighlightInTypeExport.ts index d4ea0404a6d15..408171ed629af 100644 --- a/tests/cases/fourslash/documentHighlightInTypeExport.ts +++ b/tests/cases/fourslash/documentHighlightInTypeExport.ts @@ -4,40 +4,20 @@ //// type [|A|] = 1; //// export { [|A|] as [|B|] }; -{ - const [AType, AExport, asB] = test.rangesInFile("/1.ts"); - verify.documentHighlightsOf(AType, [AType, AExport, asB]); - verify.documentHighlightsOf(AExport, [AType, AExport, asB]); - verify.documentHighlightsOf(asB, [asB]); -} // @Filename: /2.ts //// type [|A|] = 1; //// let [|A|]: [|A|] = 1; //// export { [|A|] as [|B|] }; -{ // a little strange, but the the type/value namespaces work too - const [AType, ALet, ADecl, AExport, asB] = test.rangesInFile("/2.ts"); - verify.documentHighlightsOf(AType, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(ADecl, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(ALet, [ALet, AExport, asB]); - verify.documentHighlightsOf(AExport, [AType, ALet, ADecl, AExport, asB]); - verify.documentHighlightsOf(asB, [asB]); -} +// a little strange, but the the type/value namespaces work too // @Filename: /3.ts //// type [|A|] = 1; //// let [|A|]: [|A|] = 1; //// export type { [|A|] as [|B|] }; -{ // type-only exports may still export values to be imported and used in type contexts - const [AType, ALet, ADecl, AExport, asB] = test.rangesInFile("/3.ts"); - verify.documentHighlightsOf(AType, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(ADecl, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(AExport, [AType, ALet, ADecl, AExport, asB]); - verify.documentHighlightsOf(ALet, [ALet, AExport, asB]); - verify.documentHighlightsOf(asB, [asB]); -} +// type-only exports may still export values to be imported and used in type contexts // would be nice if this could work the same for imports too, but getSymbolAtLocation() // of the imported symbol (when aliased) returns undefined @@ -46,10 +26,5 @@ // //// import type { [|Tee|] as [|T|] } from "whatEveh"; // //// let [|T|]: [|T|]; // -// { -// const [TeeImport, asT, TLet, TDecl] = test.rangesInFile("/4.ts"); -// verify.documentHighlightsOf(TeeImport, [TeeImport, asT, TDecl]); -// // verify.documentHighlightsOf(asT, [TeeImport, asT, TDecl]); -// // verify.documentHighlightsOf(TDecl, [TeeImport, asT, TDecl]); -// // verify.documentHighlightsOf(TLet, [TLet]); -// } + +verify.baselineDocumentHighlights(); \ No newline at end of file diff --git a/tests/cases/fourslash/documentHighlightJSDocTypedef.ts b/tests/cases/fourslash/documentHighlightJSDocTypedef.ts index 137e92d54571a..d51fb78f8b825 100644 --- a/tests/cases/fourslash/documentHighlightJSDocTypedef.ts +++ b/tests/cases/fourslash/documentHighlightJSDocTypedef.ts @@ -17,4 +17,4 @@ //// [|bar|]: 42, //// }; -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts index ecc819f3a6037..24b3d0b3b91c1 100644 --- a/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts +++ b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts @@ -7,4 +7,4 @@ ////` const [r] = test.ranges(); -verify.noDocumentHighlights(r); +verify.baselineDocumentHighlights(r); diff --git a/tests/cases/fourslash/documentHighlightTemplateStrings.ts b/tests/cases/fourslash/documentHighlightTemplateStrings.ts index c715c3c20776a..e553caad5dd51 100644 --- a/tests/cases/fourslash/documentHighlightTemplateStrings.ts +++ b/tests/cases/fourslash/documentHighlightTemplateStrings.ts @@ -15,4 +15,4 @@ ////} const [r0, r1, r2] = test.ranges(); -verify.documentHighlightsOf(r2, [r0, r1, r2]); +verify.baselineDocumentHighlights(r2); diff --git a/tests/cases/fourslash/documentHighlightsInvalidGlobalThis.ts b/tests/cases/fourslash/documentHighlightsInvalidGlobalThis.ts index b9c8008e1328c..bb68cb89dacd1 100644 --- a/tests/cases/fourslash/documentHighlightsInvalidGlobalThis.ts +++ b/tests/cases/fourslash/documentHighlightsInvalidGlobalThis.ts @@ -4,6 +4,4 @@ //// export { globalThis as [|global|] } ////} -for (const r of test.ranges()) { - verify.documentHighlightsOf(r, [r]); -} +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts b/tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts index de82fb60089da..1f02ef4433a6e 100644 --- a/tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts +++ b/tests/cases/fourslash/documentHighlightsInvalidModifierLocations.ts @@ -10,6 +10,4 @@ ////} ////function g([|public|] p) {} -for (const r of test.ranges()) { - verify.documentHighlightsOf(r, [r]); -} +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlights_33722.ts b/tests/cases/fourslash/documentHighlights_33722.ts index 4374bb5970e35..7dffaed49336a 100644 --- a/tests/cases/fourslash/documentHighlights_33722.ts +++ b/tests/cases/fourslash/documentHighlights_33722.ts @@ -14,4 +14,4 @@ ////y().[|foo|](); const [r] = test.ranges(); -verify.documentHighlightsOf(r, [], { filesToSearch: ["/x.ts"] }); +verify.baselineDocumentHighlights(r, { filesToSearch: ["/x.ts"] }); diff --git a/tests/cases/fourslash/documentHighlights_40082.ts b/tests/cases/fourslash/documentHighlights_40082.ts index 2d9e44c2226b0..bb9ccd2f0b431 100644 --- a/tests/cases/fourslash/documentHighlights_40082.ts +++ b/tests/cases/fourslash/documentHighlights_40082.ts @@ -8,4 +8,4 @@ //// } const [r] = test.ranges(); -verify.documentHighlightsOf(r, [r]); +verify.baselineDocumentHighlights(r); diff --git a/tests/cases/fourslash/documentHighlights_filesToSearch.ts b/tests/cases/fourslash/documentHighlights_filesToSearch.ts index ae889be528157..dd61315b65dbf 100644 --- a/tests/cases/fourslash/documentHighlights_filesToSearch.ts +++ b/tests/cases/fourslash/documentHighlights_filesToSearch.ts @@ -6,6 +6,4 @@ // @Filename: /b.ts ////import { [|x|] } from "./a"; -const [r0, r1] = test.ranges(); -verify.documentHighlightsOf(r0, [r0], { filesToSearch: [r0.fileName] }); -verify.documentHighlightsOf(r1, [r1], { filesToSearch: [r1.fileName] }); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearch.ts b/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearch.ts index 53dc470a82a0c..696c460536b8e 100644 --- a/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearch.ts +++ b/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearch.ts @@ -14,4 +14,4 @@ ////import { x } from "foo"; const [r0, r1] = test.ranges(); -verify.rangesAreDocumentHighlights(test.ranges(), { filesToSearch: ["/a.ts", "/b.ts"] }); +verify.baselineDocumentHighlights(test.ranges(), { filesToSearch: ["/a.ts", "/b.ts"] }); diff --git a/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearchWithInvalidFile.ts b/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearchWithInvalidFile.ts index d72d6868b96a3..be9dcc40c77c4 100644 --- a/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearchWithInvalidFile.ts +++ b/tests/cases/fourslash/documentHighlights_moduleImport_filesToSearchWithInvalidFile.ts @@ -14,4 +14,4 @@ ////import { x } from "foo"; const [r0, r1] = test.ranges(); -verify.rangesAreDocumentHighlights(test.ranges(), { filesToSearch: ["/a.ts", "/b.ts", "/unknown.ts"] }); +verify.baselineDocumentHighlights(test.ranges(), { filesToSearch: ["/a.ts", "/b.ts", "/unknown.ts"] }); diff --git a/tests/cases/fourslash/documentHighlights_windowsPath.ts b/tests/cases/fourslash/documentHighlights_windowsPath.ts index 594f175745b6b..1e86f558648be 100644 --- a/tests/cases/fourslash/documentHighlights_windowsPath.ts +++ b/tests/cases/fourslash/documentHighlights_windowsPath.ts @@ -4,4 +4,4 @@ ////var /*1*/[|x|] = 1; const range = test.ranges()[0]; -verify.documentHighlightsOf(range, [range], { filesToSearch: [range.fileName] }); \ No newline at end of file +verify.baselineDocumentHighlights(range, { filesToSearch: [range.fileName] }); \ No newline at end of file diff --git a/tests/cases/fourslash/doubleUnderscoreRenames.ts b/tests/cases/fourslash/doubleUnderscoreRenames.ts index 5cfd87f1be675..fc277b9bb6fcc 100644 --- a/tests/cases/fourslash/doubleUnderscoreRenames.ts +++ b/tests/cases/fourslash/doubleUnderscoreRenames.ts @@ -9,4 +9,4 @@ //// //// bar(); -verify.rangesWithSameTextAreRenameLocations("__foo"); +verify.baselineRenameAtRangesWithText("__foo"); diff --git a/tests/cases/fourslash/duplicatePackageServices.ts b/tests/cases/fourslash/duplicatePackageServices.ts index 9179876517aa4..7e49d3bb95680 100644 --- a/tests/cases/fourslash/duplicatePackageServices.ts +++ b/tests/cases/fourslash/duplicatePackageServices.ts @@ -32,7 +32,7 @@ goTo.file("/src/a.ts"); verify.numberOfErrorsInCurrentFile(0); -verify.goToDefinition("useAX", "defAX"); -verify.goToDefinition("useBX", "defAX"); - -verify.baselineFindAllReferences('useAX', 'defAX', 'useBX') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['useAX', 'defAX', 'useBX'] }, + { type: "goToDefinition", markerOrRange: ["useAX", "useBX"] }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/emptyExportFindReferences.ts b/tests/cases/fourslash/emptyExportFindReferences.ts index 84995a2ae93aa..d728e2d2b6e1d 100644 --- a/tests/cases/fourslash/emptyExportFindReferences.ts +++ b/tests/cases/fourslash/emptyExportFindReferences.ts @@ -6,5 +6,4 @@ //// //// } -goTo.marker(); -verify.occurrencesAtPositionCount(1); \ No newline at end of file +verify.baselineDocumentHighlights(""); \ No newline at end of file diff --git a/tests/cases/fourslash/exportInObjectLiteral.ts b/tests/cases/fourslash/exportInObjectLiteral.ts index 9d95ff5ff51f0..1cd195b38098a 100644 --- a/tests/cases/fourslash/exportInObjectLiteral.ts +++ b/tests/cases/fourslash/exportInObjectLiteral.ts @@ -5,5 +5,5 @@ //// [|export|] f() { } //// } -verify.documentHighlightsOf(test.ranges()[0], [], { filesToSearch: [test.ranges()[0].fileName] }); +verify.baselineDocumentHighlights(test.ranges()[0], { filesToSearch: [test.ranges()[0].fileName] }); diff --git a/tests/cases/fourslash/findAllReferencesDynamicImport2.ts b/tests/cases/fourslash/findAllReferencesDynamicImport2.ts index 7d9390f51d4d2..ce29e3eee8726 100644 --- a/tests/cases/fourslash/findAllReferencesDynamicImport2.ts +++ b/tests/cases/fourslash/findAllReferencesDynamicImport2.ts @@ -8,5 +8,7 @@ //// foo./*2*/[|bar|](); //// }) -verify.baselineFindAllReferences('1', '2'); -verify.rangesWithSameTextAreRenameLocations("bar"); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2'] }, + { type: "findRenameLocations", rangeText: "bar" }, +); diff --git a/tests/cases/fourslash/findAllReferencesDynamicImport3.ts b/tests/cases/fourslash/findAllReferencesDynamicImport3.ts index 04e2339a88a16..1df7ff9b4b937 100644 --- a/tests/cases/fourslash/findAllReferencesDynamicImport3.ts +++ b/tests/cases/fourslash/findAllReferencesDynamicImport3.ts @@ -5,6 +5,7 @@ ////import('./foo').then(([|{ /*1*/[|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 2 |}bar|] }|]) => undefined); const [r0Def, r0, r1Def, r1] = test.ranges(); -verify.baselineFindAllReferences('0', '1') -verify.renameLocations(r0, [r0, { range: r1, suffixText: ": bar" }]); -verify.renameLocations(r1, [{ range: r1, prefixText: "bar: " }]) +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1'] }, + { type: "findRenameLocations", markerOrRange: [r0, r1] }, +); diff --git a/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts b/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts index 053a34d0ff475..2c4566a9ea2b4 100644 --- a/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts +++ b/tests/cases/fourslash/findAllRefsClassWithStaticThisAccess.ts @@ -14,5 +14,7 @@ const [r0Def, r0, r1, r2] = test.ranges(); -verify.renameLocations(r0, [r0]); -verify.baselineFindAllReferences('0', '1', '2') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1', '2'] }, + { type: "findRenameLocations", markerOrRange: r0 }, +); diff --git a/tests/cases/fourslash/findAllRefsDefaultImportThroughNamespace.ts b/tests/cases/fourslash/findAllRefsDefaultImportThroughNamespace.ts index f09e8dee4f424..48bab9357f50e 100644 --- a/tests/cases/fourslash/findAllRefsDefaultImportThroughNamespace.ts +++ b/tests/cases/fourslash/findAllRefsDefaultImportThroughNamespace.ts @@ -15,13 +15,13 @@ const [r0Def, r0, r1, r2, r3Def, r3, r4] = test.ranges(); -verify.baselineFindAllReferences('0', '1', '2', '3', '4') - -verify.rangesAreRenameLocations([r1]); - // Can't rename a default import. goTo.rangeStart(r2); verify.renameInfoFailed(); -// Can rename a default property. -verify.rangesAreRenameLocations([r3, r4]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1', '2', '3', '4'] }, + { type: "findRenameLocations", markerOrRange: r1 }, + // Can rename a default property. + { type: "findRenameLocations", markerOrRange: [r3, r4] }, +); diff --git a/tests/cases/fourslash/findAllRefsForDefaultExport.ts b/tests/cases/fourslash/findAllRefsForDefaultExport.ts index 0c20c2aa49304..a0296c0272641 100644 --- a/tests/cases/fourslash/findAllRefsForDefaultExport.ts +++ b/tests/cases/fourslash/findAllRefsForDefaultExport.ts @@ -10,5 +10,7 @@ // @Filename: c.ts ////import { f } from "./a"; -verify.baselineFindAllReferences('def', 'deg') -verify.goToDefinition("ref", "def"); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['def', 'deg'] }, + { type: "goToDefinition", markerOrRange: "ref" }, +); diff --git a/tests/cases/fourslash/findAllRefsForDefaultExportAnonymous.ts b/tests/cases/fourslash/findAllRefsForDefaultExportAnonymous.ts index 0084b599bab8e..9d2903d54f89d 100644 --- a/tests/cases/fourslash/findAllRefsForDefaultExportAnonymous.ts +++ b/tests/cases/fourslash/findAllRefsForDefaultExportAnonymous.ts @@ -8,9 +8,10 @@ const [r0Def, r0, r1Def, r1] = test.ranges(); -verify.baselineFindAllReferences('0', '1') - // Verify that it doesn't try to rename "default" goTo.rangeStart(r0); verify.renameInfoFailed(); -verify.renameLocations(r1, [r1]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1'] }, + { type: "findRenameLocations", markerOrRange: r1 } +); diff --git a/tests/cases/fourslash/findAllRefsForModule.ts b/tests/cases/fourslash/findAllRefsForModule.ts index 90cda92138685..2909e526a75b3 100644 --- a/tests/cases/fourslash/findAllRefsForModule.ts +++ b/tests/cases/fourslash/findAllRefsForModule.ts @@ -17,5 +17,7 @@ const [r0Def, r0, r1Def, r1, r2] = test.ranges(); const ranges = [r0, r1, r2]; // Testing that it works with documentHighlights too -verify.rangesAreDocumentHighlights(ranges); -verify.baselineFindAllReferences('0', '1', '2') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1', '2'] }, + { type: "documentHighlights", markerOrRange: ranges, options: { filesToSearch: ["/b.ts", "/c/sub.js", "/d.ts"] } }, +); diff --git a/tests/cases/fourslash/findAllRefsImportStarOfExportEquals.ts b/tests/cases/fourslash/findAllRefsImportStarOfExportEquals.ts index 29c36b76d6a4f..fdd897b02095e 100644 --- a/tests/cases/fourslash/findAllRefsImportStarOfExportEquals.ts +++ b/tests/cases/fourslash/findAllRefsImportStarOfExportEquals.ts @@ -25,9 +25,9 @@ const [a0Def, a0, a1Def, a1, a2Def, a2, b0Def, b0, b1, b2, c0Def, c0, c1, c2] = const aRanges = [a0, a1, a2]; const bRanges = [b0, b1, b2]; const cRanges = [c0, c1, c2]; - -verify.baselineFindAllReferences('a0', 'a1', 'a2', 'b0', 'b1', 'c0', 'c1', 'c2') - -verify.renameLocations(aRanges, aRanges.concat(cRanges)); -verify.rangesAreRenameLocations(bRanges); -verify.rangesAreRenameLocations(cRanges); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['a0', 'a1', 'a2', 'b0', 'b1', 'c0', 'c1', 'c2'] }, + { type: "findRenameLocations", markerOrRange: aRanges }, + { type: "findRenameLocations", markerOrRange: bRanges }, + { type: "findRenameLocations", markerOrRange: cRanges }, +); diff --git a/tests/cases/fourslash/findAllRefsOnImportAliases2.ts b/tests/cases/fourslash/findAllRefsOnImportAliases2.ts index 8c10738090d7d..eeb88acb2eaff 100644 --- a/tests/cases/fourslash/findAllRefsOnImportAliases2.ts +++ b/tests/cases/fourslash/findAllRefsOnImportAliases2.ts @@ -10,5 +10,7 @@ //@Filename: c.ts ////[|export { /*class2*/[|{| "contextRangeIndex": 6 |}Class|] as /*c3*/[|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 6 |}C3|] } from "./a";|] -verify.baselineFindAllReferences('class0', 'class1', 'class2', 'c2_0', 'c2_1', 'c3') -verify.rangesWithSameTextAreRenameLocations("Class", "C2", "C3"); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['class0', 'class1', 'class2', 'c2_0', 'c2_1', 'c3'] }, + { type: "findRenameLocations", rangeText: ["Class", "C2", "C3"] }, +); diff --git a/tests/cases/fourslash/findAllRefsPrefixSuffixPreference.ts b/tests/cases/fourslash/findAllRefsPrefixSuffixPreference.ts index 39ab48cb7fe8d..400885898844c 100644 --- a/tests/cases/fourslash/findAllRefsPrefixSuffixPreference.ts +++ b/tests/cases/fourslash/findAllRefsPrefixSuffixPreference.ts @@ -28,12 +28,6 @@ const qFile2ReferenceGroup: FourSlashInterface.ReferenceGroup = { definition: "(alias) const q: 1\nimport q", ranges: qFile2Ranges }; -verify.renameLocations(q0, { ranges: [q0, { range: q1, suffixText: " as q" }], providePrefixAndSuffixTextForRename: true }); -verify.renameLocations(q1, { ranges: [{ range: q1, prefixText: "q as " }, q2, q3], providePrefixAndSuffixTextForRename: true }); -verify.renameLocations([q2, q3], { ranges: [{ range: q2, prefixText: "q as " }, q3], providePrefixAndSuffixTextForRename: true }); - -verify.renameLocations([q0, q1, q2, q3], { ranges: [q0, q1, q2, q3], providePrefixAndSuffixTextForRename: false }); - const zReferenceGroup1: FourSlashInterface.ReferenceGroup = { definition: "(property) z: string", ranges: [z0] @@ -43,8 +37,10 @@ const zReferenceGroup2: FourSlashInterface.ReferenceGroup = { ranges: [z1, z2] }; -verify.renameLocations([z0], { ranges: [z0, { range: z1, suffixText: ": z" }], providePrefixAndSuffixTextForRename: true }); -verify.renameLocations([z1, z2], { ranges: [{ range: z1, prefixText: "z: " }, z2], providePrefixAndSuffixTextForRename: true }); - -verify.renameLocations([z0, z1, z2], { ranges: [z0, z1, z2], providePrefixAndSuffixTextForRename: false }); -verify.baselineFindAllReferences('q0', 'q1', 'q2', 'q3', 'z0', 'z1', 'z2') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['q0', 'q1', 'q2', 'q3', 'z0', 'z1', 'z2'] }, + { type: "findRenameLocations", markerOrRange: [q0, q1, q2, q3], options: { providePrefixAndSuffixTextForRename: true } }, + { type: "findRenameLocations", markerOrRange: [q0, q1, q2, q3], options: { providePrefixAndSuffixTextForRename: false } }, + { type: "findRenameLocations", markerOrRange: [z0, z1, z2], options: { providePrefixAndSuffixTextForRename: true } }, + { type: "findRenameLocations", markerOrRange: [z0, z1, z2], options: { providePrefixAndSuffixTextForRename: false } }, +); diff --git a/tests/cases/fourslash/findAllRefsPrimitive.ts b/tests/cases/fourslash/findAllRefsPrimitive.ts index 5b810c7a43c22..05c4571e6672a 100644 --- a/tests/cases/fourslash/findAllRefsPrimitive.ts +++ b/tests/cases/fourslash/findAllRefsPrimitive.ts @@ -24,8 +24,10 @@ // @Filename: b.ts //// const z: /*17*/[|any|] = 0; -verify.baselineFindAllReferences('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'); -verify.rangesWithSameTextAreDocumentHighlights(); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'] }, + { type: "documentHighlights", options: { filesToSearch: ["a.ts", "b.ts"] } } +); goTo.rangeStart(test.ranges()[0]); verify.renameInfoFailed(); diff --git a/tests/cases/fourslash/findAllRefsReExportLocal.ts b/tests/cases/fourslash/findAllRefsReExportLocal.ts index 7dd2b63e03b02..3240ca53a4bba 100644 --- a/tests/cases/fourslash/findAllRefsReExportLocal.ts +++ b/tests/cases/fourslash/findAllRefsReExportLocal.ts @@ -17,10 +17,11 @@ const [ax0Def, ax0, ax1Def, ax1, ax2Def, ax2, ay, bx0Def, bx0, by0, bx1, by1] = const bxRanges = [bx0, bx1]; const byRanges = [by0, by1]; -verify.baselineFindAllReferences('ax0', 'ax1', 'ax2', 'bx0', 'bx1', 'ay', 'by0', 'by1') - -verify.renameLocations([ax0, ax2], [ax0, { range: ax1, suffixText: " as x" }, ax2]); -verify.renameLocations(ax1, [{ range: ax1, prefixText: "x as " }, bx0, bx1]); -verify.renameLocations(bxRanges, [{ range: bx0, prefixText: "x as " }, bx1]); -verify.renameLocations(ay, [ay, ...byRanges]); -verify.renameLocations(byRanges, [{ range: by0, prefixText: "y as " }, by1]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['ax0', 'ax1', 'ax2', 'bx0', 'bx1', 'ay', 'by0', 'by1'] }, + { type: "findRenameLocations", markerOrRange: [ax0, ax2] }, + { type: "findRenameLocations", markerOrRange: ax1 }, + { type: "findRenameLocations", markerOrRange: bxRanges }, + { type: "findRenameLocations", markerOrRange: ay }, + { type: "findRenameLocations", markerOrRange: byRanges }, +); diff --git a/tests/cases/fourslash/findAllRefsReExportRightNameWrongSymbol.ts b/tests/cases/fourslash/findAllRefsReExportRightNameWrongSymbol.ts index d0d838f782529..521acef222173 100644 --- a/tests/cases/fourslash/findAllRefsReExportRightNameWrongSymbol.ts +++ b/tests/cases/fourslash/findAllRefsReExportRightNameWrongSymbol.ts @@ -16,10 +16,11 @@ verify.noErrors(); const [aDef, a, bDef, b, cFromBDef, cFromB, cFromADef, cFromA, cUse, dDef, d] = test.ranges(); -verify.renameLocations(a, [a, cFromA, cUse]); -verify.renameLocations([cFromA, cUse], [{ range: cFromA, prefixText: "x as " }, cUse]); -verify.renameLocations(b, [b, { range: cFromB, suffixText: " as x" }]); -verify.renameLocations(cFromB, [{ range: cFromB, prefixText: "x as " }, d]); -verify.renameLocations(d, [{ range: d, prefixText: "x as " }]); - -verify.baselineFindAllReferences('a', 'b', 'cFromB', 'cFromA', 'cUse', 'd') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['a', 'b', 'cFromB', 'cFromA', 'cUse', 'd'] }, + { type: "findRenameLocations", markerOrRange: a }, + { type: "findRenameLocations", markerOrRange: [cFromA, cUse] }, + { type: "findRenameLocations", markerOrRange: b }, + { type: "findRenameLocations", markerOrRange: cFromB }, + { type: "findRenameLocations", markerOrRange: d }, +); diff --git a/tests/cases/fourslash/findAllRefsReExports.ts b/tests/cases/fourslash/findAllRefsReExports.ts index 2e0f71490510b..4d963a7a4d5ab 100644 --- a/tests/cases/fourslash/findAllRefsReExports.ts +++ b/tests/cases/fourslash/findAllRefsReExports.ts @@ -20,6 +20,19 @@ /////*bar2*/[|bar|](); /*baz1*/[|baz|](); /*bang1*/[|bang|](); /*boom1*/[|boom|](); verify.noErrors(); +const commands: FourSlashInterface.BaselineCommand[] = [ + { + type: "findAllReferences", + markerOrRange: [ + 'foo0', 'foo1', 'foo2', + 'bar0', 'bar1', 'bar2', + 'defaultC', 'defaultE', 'defaultD', + 'baz0', 'baz1', + 'bang0', 'bang1', + 'boom0', 'boom1' + ], + }, +]; test.rangesByText().forEach((ranges, text) => { if (text.indexOf("export") === 0 || text.indexOf("import") === 0) return; switch (text) { @@ -29,21 +42,9 @@ test.rangesByText().forEach((ranges, text) => { verify.renameInfoFailed(); } break; - case "bar": { - const [r0, r1, ...tail] = ranges; - verify.renameLocations(r0, ranges); - verify.renameLocations([r1, ...tail], [{ range: r1, prefixText: "bar as " }, ...tail]); - break; - } default: - verify.rangesAreRenameLocations(ranges); + commands.push({ type: "findRenameLocations", markerOrRange: ranges }); break; } }); -verify.baselineFindAllReferences( - 'foo0', 'foo1', 'foo2', - 'bar0', 'bar1', 'bar2', - 'defaultC', 'defaultE', 'defaultD', - 'baz0', 'baz1', - 'bang0', 'bang1', - 'boom0', 'boom1') +verify.baselineCommands(...commands); diff --git a/tests/cases/fourslash/findAllRefsReExportsUseInImportType.ts b/tests/cases/fourslash/findAllRefsReExportsUseInImportType.ts index 2dbc4c9f2fcc1..49406c95227a4 100644 --- a/tests/cases/fourslash/findAllRefsReExportsUseInImportType.ts +++ b/tests/cases/fourslash/findAllRefsReExportsUseInImportType.ts @@ -20,7 +20,6 @@ const full = { definition: "type Full = {\n prop: string;\n}", ranges: fullRanges }; -verify.renameLocations(fullRanges, fullRanges); const fooTypesRanges = [foo0, foo1]; const fooTypes = { @@ -38,9 +37,12 @@ const fooExport = { ranges: exportFooRanges }; -verify.renameLocations([foo0], [foo0, { range: foo1, suffixText: " as foo" }]); -verify.renameLocations([foo1, foo4], [foo2, foo3, foo4, { range: foo1, prefixText: "foo as " }]); -verify.renameLocations(fooAppRanges, [{ range: foo2, prefixText: "foo as " }, foo3]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['full0', 'full1', 'full2', 'foo0', 'foo1', 'foo2', 'foo3', 'foo4'] }, + { type: "findRenameLocations", markerOrRange: fullRanges }, + { type: "findRenameLocations", markerOrRange: foo0 }, + { type: "findRenameLocations", markerOrRange: [foo1, foo4] }, + { type: "findRenameLocations", markerOrRange: fooAppRanges }, + { type: "findRenameLocations", markerOrRange: [foo2, foo3, foo4, foo0, foo1], options: { providePrefixAndSuffixTextForRename: false } }, +); -verify.rangesAreRenameLocations({ ranges: [foo2, foo3, foo4, foo0, foo1], providePrefixAndSuffixTextForRename: false }); -verify.baselineFindAllReferences('full0', 'full1', 'full2', 'foo0', 'foo1', 'foo2', 'foo3', 'foo4') diff --git a/tests/cases/fourslash/findAllRefsRenameImportWithSameName.ts b/tests/cases/fourslash/findAllRefsRenameImportWithSameName.ts index bab96dacc504a..d1a6f516ecdec 100644 --- a/tests/cases/fourslash/findAllRefsRenameImportWithSameName.ts +++ b/tests/cases/fourslash/findAllRefsRenameImportWithSameName.ts @@ -10,7 +10,7 @@ verify.noErrors(); const [r0Def, r0, r1Def, r1, r2, r3] = test.ranges(); -verify.renameLocations(r0, [r0, r1, r2, r3]); -verify.renameLocations(r1, [r0, r1, r2, r3]); -verify.rangesAreRenameLocations([r2, r3]); -verify.baselineFindAllReferences('0', '1', '2', '3') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1', '2', '3'] }, + { type: "findRenameLocations", markerOrRange: [r0, r1, r2, r3] }, +); diff --git a/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts b/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts index 7bf2cff694e38..2d86d1a4d8363 100644 --- a/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts +++ b/tests/cases/fourslash/findAllRefs_importType_exportEquals.ts @@ -12,13 +12,11 @@ ////[|const y: import("/*4*/[|{| "contextRangeIndex": 10 |}./[|a|]|]").U = "";|] verify.noErrors(); -verify.baselineFindAllReferences('0', '1', '2', '3', '4', 'export') - const [r0Def, r0, r1Def, r1, r2Def, rExport, r2, r3Def, r3, r3b, r4Def, r4, r4b] = test.ranges(); - -verify.renameLocations(r0, [r0, r2]); -verify.renameLocations(r1, [r1, r2]); -verify.renameLocations(r2, [r0, r1, r2]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['0', '1', '2', '3', '4', 'export'] }, + { type: "findRenameLocations", markerOrRange: [r0, r1, r2] }, +); for (const range of [r3b, r4b]) { goTo.rangeStart(range); verify.renameInfoSucceeded(/*displayName*/ "/a.ts", /*fullDisplayName*/ "/a.ts", /*kind*/ "module", /*kindModifiers*/ "", /*fileToRename*/ "/a.ts", range); diff --git a/tests/cases/fourslash/findReferencesAfterEdit.ts b/tests/cases/fourslash/findReferencesAfterEdit.ts index 1fed3434cb2a3..0b0f39fec55b4 100644 --- a/tests/cases/fourslash/findReferencesAfterEdit.ts +++ b/tests/cases/fourslash/findReferencesAfterEdit.ts @@ -12,9 +12,15 @@ //// x./*2*/foo ////} -verify.baselineFindAllReferencesMulti(1, '1', '2'); - -goTo.marker(""); -edit.insert("\n"); - -verify.baselineFindAllReferencesMulti(2, '1', '2'); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2'] }, + { + type: "customWork", + work: () => { + goTo.marker(""); + edit.insert("\n"); + return "edits"; + } + }, + { type: "findAllReferences", markerOrRange: ['1', '2'] }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts b/tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts index d424bd0c500b0..9a6b8ee5e85c1 100644 --- a/tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts +++ b/tests/cases/fourslash/findReferencesDefinitionDisplayParts.ts @@ -10,14 +10,4 @@ //// some/*4*/Label: //// break someLabel; -goTo.marker("1"); -verify.findReferencesDefinitionDisplayPartsAtCaretAre([{ text: "class", kind: "keyword" }, { text: " ", kind: "space" }, { text: "Greeter", kind: "className" }]); - -goTo.marker("2"); -verify.findReferencesDefinitionDisplayPartsAtCaretAre([{ text: "this", kind: "keyword" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "this", kind: "keyword" }]); - -goTo.marker("3"); -verify.findReferencesDefinitionDisplayPartsAtCaretAre([{ text: "\"option 1\"", kind: "stringLiteral" }]); - -goTo.marker("4"); -verify.findReferencesDefinitionDisplayPartsAtCaretAre([{ text: "someLabel", kind: "text" }]); \ No newline at end of file +verify.baselineFindAllReferences("1", "2", "3", "4"); \ No newline at end of file diff --git a/tests/cases/fourslash/findReferencesJSXTagName3.ts b/tests/cases/fourslash/findReferencesJSXTagName3.ts index b55a4a8e69455..b4675ca272c45 100644 --- a/tests/cases/fourslash/findReferencesJSXTagName3.ts +++ b/tests/cases/fourslash/findReferencesJSXTagName3.ts @@ -25,16 +25,17 @@ const [d0Def, d0, c0Def, c0, d1Def, d1, d2Def, d2, d3, d4, c1Def, c1, c2] = test const allD = [d0, d1, d2, d3, d4]; const allC = [c0, c1, c2]; -verify.baselineFindAllReferences( - // div occurrences - '1', '2', '3', '4', '5', - // Comp occurrences - '6', '7', '8'); - -// For document highlights, we will just do tag matching if on a tag. Otherwise we find-all-references. -verify.documentHighlightsOf(d0, [d0, d1, d2, d3, d4]); -verify.rangesAreDocumentHighlights([d1, d4]); -verify.rangesAreDocumentHighlights([d2, d3]); - -verify.documentHighlightsOf(c0, [c0, c1, c2]); -verify.rangesAreDocumentHighlights([c1, c2]); +verify.baselineCommands( + { + type: "findAllReferences", + markerOrRange: [ + // div occurrences + '1', '2', '3', '4', '5', + // Comp occurrences + '6', '7', '8' + ] + }, + // For document highlights, we will just do tag matching if on a tag. Otherwise we find-all-references. + { type: "documentHighlights", markerOrRange: allD }, + { type: "documentHighlights", markerOrRange: allC }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 53352c8573dc1..ddba03d04b90d 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -203,6 +203,7 @@ declare namespace FourSlashInterface { end: number; marker?: Marker; } + type MarkerOrNameOrRange = string | Marker | Range; interface TextSpan { start: number; end: number; @@ -232,7 +233,6 @@ declare namespace FourSlashInterface { eachRange(action: (range: Range) => void): void; bof(): void; eof(): void; - implementation(): void; position(position: number, fileIndex?: number): any; position(position: number, fileName?: string): any; position(lineAndCharacter: ts.LineAndCharacter, fileName?: string): void; @@ -256,8 +256,6 @@ declare namespace FourSlashInterface { errorExistsAfterMarker(markerName?: string): void; errorExistsBeforeMarker(markerName?: string): void; quickInfoExists(): void; - typeDefinitionCountIs(expectedCount: number): void; - implementationListIsEmpty(): void; isValidBraceCompletionAtPosition(openingBrace?: string): void; jsxClosingTag(map: { [markerName: string]: { readonly newText: string } | undefined }): void; isInCommentAtPosition(onlyMultiLineDiverges?: boolean): void; @@ -312,42 +310,27 @@ declare namespace FourSlashInterface { currentLineContentIs(text: string): void; currentFileContentIs(text: string): void; formatDocumentChangesNothing(): void; - /** Verifies that goToDefinition at the current position would take you to `endMarker`. */ - goToDefinitionIs(endMarkers: ArrayOrSingle): void; - goToDefinitionName(name: string, containerName: string): void; - /** - * `verify.goToDefinition("a", "b");` verifies that go-to-definition at marker "a" takes you to marker "b". - * `verify.goToDefinition(["a", "aa"], "b");` verifies that markers "a" and "aa" have the same definition "b". - * `verify.goToDefinition("a", ["b", "bb"]);` verifies that "a" has multiple definitions available. - */ - goToDefinition(startMarkerNames: ArrayOrSingle, fileResult: { file: string, unverified?: boolean }): void; - goToDefinition(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; - goToDefinition(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle, range: Range): void; - /** Performs `goToDefinition` for each pair. */ - goToDefinition(startsAndEnds: [ArrayOrSingle, ArrayOrSingle][]): void; - /** Performs `goToDefinition` on each key and value. */ - goToDefinition(startsAndEnds: { [startMarkerName: string]: ArrayOrSingle }): void; - /** Verifies goToDefinition for each `${markerName}Reference` -> `${markerName}Definition` */ - goToDefinitionForMarkers(...markerNames: string[]): void; - goToSourceDefinition(startMarkerNames: ArrayOrSingle, fileResult: { file: string, unverified?: boolean }): void; - goToSourceDefinition(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; - goToSourceDefinition(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; - goToType(startsAndEnds: { [startMarkerName: string]: ArrayOrSingle }): void; - goToType(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; verifyGetEmitOutputForCurrentFile(expected: string): void; verifyGetEmitOutputContentsForCurrentFile(expected: ts.OutputFile[]): void; - baselineFindAllReferences(...markerNames: string[]): void; - baselineFindAllReferencesMulti(seq: number, ...markerNames: string[]): void; - baselineGetFileReferences(fileName: string): void; + baselineCommands(...commands: BaselineCommand[]): void; + baselineFindAllReferences(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineFindAllReferencesAtRangesWithText(...rangeText: string[]): void; + baselineGetFileReferences(...fileName: string[]): void; + baselineGoToDefinition(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineGoToDefinitionAtRangesWithText(...rangeText: string[]): void; + baselineGetDefinitionAtPosition(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineGetDefinitionAtRangesWithText(...rangeText: string[]): void; + baselineGoToSourceDefinition(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineGoToSourceDefinitionAtRangesWithText(...rangeText: string[]): void; + baselineGoToType(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineGoToTypeAtRangesWithText(...rangeText: string[]): void; + baselineGoToImplementation(...markerOrRange: MarkerOrNameOrRange[]): void; + baselineGoToImplementationAtRangesWithText(...rangeText: string[]): void; + baselineDocumentHighlights(markerOrRange?: ArrayOrSingle, options?: VerifyDocumentHighlightsOptions): void; + baselineDocumentHighlightsAtRangesWithText(rangeText?: ArrayOrSingle, options?: VerifyDocumentHighlightsOptions): void; symbolAtLocation(startRange: Range, ...declarationRanges: Range[]): void; typeOfSymbolAtLocation(range: Range, symbol: any, expected: string): void; typeAtLocation(range: Range, expected: string): void; - /** @deprecated Use baselineFindAllReferences instead */ - singleReferenceGroup(definition: ReferencesDefinition, ranges?: Range[] | string): void; - rangesAreOccurrences(isWriteAccess?: boolean, ranges?: Range[]): void; - rangesWithSameTextAreRenameLocations(...texts: string[]): void; - rangesAreRenameLocations(options?: Range[] | { findInStrings?: boolean, findInComments?: boolean, ranges?: Range[], providePrefixAndSuffixTextForRename?: boolean }); - findReferencesDefinitionDisplayPartsAtCaretAre(expected: ts.SymbolDisplayPart[]): void; noSignatureHelp(...markers: (string | Marker)[]): void; noSignatureHelpForTriggerReason(triggerReason: SignatureHelpTriggerReason, ...markers: (string | Marker)[]): void signatureHelpPresentForTriggerReason(triggerReason: SignatureHelpTriggerReason, ...markers: (string | Marker)[]): void @@ -387,11 +370,6 @@ declare namespace FourSlashInterface { navigationBar(json: any, options?: { checkSpans?: boolean }): void; navigationTree(json: any, options?: { checkSpans?: boolean }): void; navigateTo(...options: VerifyNavigateToOptions[]); - occurrencesAtPositionContains(range: Range, isWriteAccess?: boolean): void; - occurrencesAtPositionCount(expectedCount: number): void; - rangesAreDocumentHighlights(ranges?: Range[], options?: VerifyDocumentHighlightsOptions): void; - rangesWithSameTextAreDocumentHighlights(): void; - documentHighlightsOf(startRange: Range, ranges: Range[], options?: VerifyDocumentHighlightsOptions): void; /** Prefer {@link syntacticClassificationsAre} for more descriptive tests */ encodedSyntacticClassificationsLength(expected: number): void; /** Prefer {@link semanticClassificationsAre} for more descriptive tests */ @@ -415,8 +393,8 @@ declare namespace FourSlashInterface { replaceWithSemanticClassifications(format: "2020") renameInfoSucceeded(displayName?: string, fullDisplayName?: string, kind?: string, kindModifiers?: string, fileToRename?: string, range?: Range, preferences?: UserPreferences): void; renameInfoFailed(message?: string, preferences?: UserPreferences): void; - renameLocations(startRanges: ArrayOrSingle, options: RenameLocationsOptions): void; - baselineRename(marker: string, options: RenameOptions): void; + baselineRename(markerOrRange?: ArrayOrSingle, options?: RenameOptions): void; + baselineRenameAtRangesWithText(rangeText?: ArrayOrSingle, options?: RenameOptions): void; /** Verify the quick info available at the current marker. */ quickInfoIs(expectedText: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]): void; @@ -439,7 +417,6 @@ declare namespace FourSlashInterface { getSemanticDiagnostics(expected: ReadonlyArray): void; getSuggestionDiagnostics(expected: ReadonlyArray): void; ProjectInfo(expected: string[]): void; - allRangesAppearInImplementationList(markerName: string): void; getEditsForFileRename(options: { readonly oldPath: string; readonly newPath: string; @@ -463,6 +440,7 @@ declare namespace FourSlashInterface { uncommentSelection(newFileContent: string): void; } class edit { + caretPosition(): Marker; backspace(count?: number): void; deleteAtCaret(times?: number): void; replace(start: number, length: number, text: string): void; @@ -658,7 +636,7 @@ declare namespace FourSlashInterface { reportsDeprecated?: true; } interface VerifyDocumentHighlightsOptions { - filesToSearch?: ReadonlyArray; + filesToSearch: ReadonlyArray; } interface UserPreferences { readonly quotePreference?: "auto" | "double" | "single"; @@ -857,6 +835,27 @@ declare namespace FourSlashInterface { type RenameOptions = { readonly findInStrings?: boolean, readonly findInComments?: boolean, readonly providePrefixAndSuffixTextForRename?: boolean }; type RenameLocationOptions = Range | { readonly range: Range, readonly prefixText?: string, readonly suffixText?: string }; type DiagnosticIgnoredInterpolations = { template: string } + type BaselineCommand = { + type: "findAllReferences" | "goToDefinition" | "getDefinitionAtPosition" | "goToSourceDefinition" | "goToType" | "goToImplementation"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; + } | { + type: "getFileReferences"; + fileName: ArrayOrSingle; + } | { + type: "findRenameLocations"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; + options?: RenameOptions; + } | { + type: "documentHighlights"; + markerOrRange?: ArrayOrSingle; + rangeText?: ArrayOrSingle; + options?: VerifyDocumentHighlightsOptions; + } | { + type: "customWork"; + work: () => string | undefined; + }; } /** Wraps a diagnostic message to be compared ignoring interpolated strings */ declare function ignoreInterpolations(diagnostic: string | ts.DiagnosticMessage): FourSlashInterface.DiagnosticIgnoredInterpolations; diff --git a/tests/cases/fourslash/getOccurrencesAbstract01.ts b/tests/cases/fourslash/getOccurrencesAbstract01.ts index b2ccc815e0540..2b377f1bb6346 100644 --- a/tests/cases/fourslash/getOccurrencesAbstract01.ts +++ b/tests/cases/fourslash/getOccurrencesAbstract01.ts @@ -12,4 +12,4 @@ //// abstract bar(): void; ////} -verify.rangesAreOccurrences(false); \ No newline at end of file +verify.baselineDocumentHighlights(); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesAbstract02.ts b/tests/cases/fourslash/getOccurrencesAbstract02.ts index 1decdaaf69ce4..32c212a5eda6b 100644 --- a/tests/cases/fourslash/getOccurrencesAbstract02.ts +++ b/tests/cases/fourslash/getOccurrencesAbstract02.ts @@ -11,10 +11,7 @@ //// abstract bar(): void; ////} -verify.rangesAreOccurrences(false); - -goTo.marker("1"); -verify.occurrencesAtPositionCount(0); - -goTo.marker("2"); -verify.occurrencesAtPositionCount(2); +verify.baselineCommands( + { type: "documentHighlights", markerOrRange: ["1", "2"] }, + { type: "documentHighlights" } +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesAbstract03.ts b/tests/cases/fourslash/getOccurrencesAbstract03.ts index 29bdb3c22573e..b2fecb3e1717a 100644 --- a/tests/cases/fourslash/getOccurrencesAbstract03.ts +++ b/tests/cases/fourslash/getOccurrencesAbstract03.ts @@ -15,7 +15,4 @@ //// [|abstract|] class B { [|abstract|] m(): void; } ////} -const [r0, r1, r2, r3, r4, r5] = test.ranges(); -verify.rangesAreDocumentHighlights([r0, r1]); -verify.rangesAreDocumentHighlights([r2, r3]); -verify.rangesAreDocumentHighlights([r4, r5]); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesAfterEdit.ts b/tests/cases/fourslash/getOccurrencesAfterEdit.ts index 5514e22dce929..80f65974fce01 100644 --- a/tests/cases/fourslash/getOccurrencesAfterEdit.ts +++ b/tests/cases/fourslash/getOccurrencesAfterEdit.ts @@ -8,11 +8,15 @@ //// x.f/*1*/oo ////} -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); - -goTo.marker("0"); -edit.insert("\n"); - -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); \ No newline at end of file +verify.baselineCommands( + { type: "documentHighlights", markerOrRange: "1" }, + { + type: "customWork", + work: () => { + goTo.marker("0"); + edit.insert("\n"); + return "Added new line"; + }, + }, + { type: "documentHighlights", markerOrRange: "1" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesAsyncAwait.ts b/tests/cases/fourslash/getOccurrencesAsyncAwait.ts index c41b207974924..6eae41ed68efa 100644 --- a/tests/cases/fourslash/getOccurrencesAsyncAwait.ts +++ b/tests/cases/fourslash/getOccurrencesAsyncAwait.ts @@ -19,4 +19,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesAsyncAwait2.ts b/tests/cases/fourslash/getOccurrencesAsyncAwait2.ts index 039cade46d03a..8bea3e9d6e57c 100644 --- a/tests/cases/fourslash/getOccurrencesAsyncAwait2.ts +++ b/tests/cases/fourslash/getOccurrencesAsyncAwait2.ts @@ -8,4 +8,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesAsyncAwait3.ts b/tests/cases/fourslash/getOccurrencesAsyncAwait3.ts index 972b6b8b07d70..775837647d17d 100644 --- a/tests/cases/fourslash/getOccurrencesAsyncAwait3.ts +++ b/tests/cases/fourslash/getOccurrencesAsyncAwait3.ts @@ -7,5 +7,4 @@ //// await 300; ////} -goTo.marker(); -verify.occurrencesAtPositionCount(0); \ No newline at end of file +verify.baselineDocumentHighlights(""); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts b/tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts index d092c1dfd92e5..85bd0df07a941 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionConstructor.ts @@ -13,4 +13,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts b/tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts index 2bc18d2eb253f..247d8595317ae 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionPrivate.ts @@ -17,4 +17,4 @@ //// public test2() {} ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts b/tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts index c54dbd289e0a2..13e262ab47f74 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionPublic.ts @@ -17,4 +17,4 @@ //// public test2() {} ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts b/tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts index d4851ad86ef3e..5a8b131bfc91d 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionStatic.ts @@ -19,4 +19,4 @@ //// public static test2() {} ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts b/tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts index 53c1a69bead51..d8fb43b4e5cfc 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionStaticThis.ts @@ -46,4 +46,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesClassExpressionThis.ts b/tests/cases/fourslash/getOccurrencesClassExpressionThis.ts index d1331e54a4359..b9e45c956aaad 100644 --- a/tests/cases/fourslash/getOccurrencesClassExpressionThis.ts +++ b/tests/cases/fourslash/getOccurrencesClassExpressionThis.ts @@ -44,4 +44,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesConst01.ts b/tests/cases/fourslash/getOccurrencesConst01.ts index c6b6114f464c5..de67ff050ca8e 100644 --- a/tests/cases/fourslash/getOccurrencesConst01.ts +++ b/tests/cases/fourslash/getOccurrencesConst01.ts @@ -7,7 +7,7 @@ //// /////*2*/const c = 0; -verify.rangesAreOccurrences(); - -goTo.marker("2"); -verify.occurrencesAtPositionCount(0); +verify.baselineCommands( + { type: "documentHighlights" }, + { type: "documentHighlights", markerOrRange: "2" } +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesConst02.ts b/tests/cases/fourslash/getOccurrencesConst02.ts index f96c520b4e55b..5c16fb94512a3 100644 --- a/tests/cases/fourslash/getOccurrencesConst02.ts +++ b/tests/cases/fourslash/getOccurrencesConst02.ts @@ -10,5 +10,7 @@ ////declare [|const|] enum E { ////} -goTo.eachRange(() => verify.occurrencesAtPositionCount(1)); // They are in different scopes, so not counted together. -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); +verify.baselineCommands( + { type: "documentHighlights" }, // They are in different scopes, so not counted together. + { type: "documentHighlights", markerOrRange: test.markers() }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesConst03.ts b/tests/cases/fourslash/getOccurrencesConst03.ts index 511a9fa9afbdc..6403ffefcad64 100644 --- a/tests/cases/fourslash/getOccurrencesConst03.ts +++ b/tests/cases/fourslash/getOccurrencesConst03.ts @@ -10,5 +10,7 @@ ////export [|const|] enum E { ////} -goTo.eachRange(() => verify.occurrencesAtPositionCount(1)); // They are in different scopes, so not counted together. -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); \ No newline at end of file +verify.baselineCommands( + { type: "documentHighlights" }, // They are in different scopes, so not counted together. + { type: "documentHighlights", markerOrRange: test.markers() }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesConst04.ts b/tests/cases/fourslash/getOccurrencesConst04.ts index dca2d70957d52..9631c46a7de9e 100644 --- a/tests/cases/fourslash/getOccurrencesConst04.ts +++ b/tests/cases/fourslash/getOccurrencesConst04.ts @@ -6,9 +6,4 @@ //// } ////} -goTo.marker("1"); -verify.occurrencesAtPositionCount(1); -goTo.marker("2"); -verify.occurrencesAtPositionCount(1); -goTo.marker("3"); -verify.occurrencesAtPositionCount(1); \ No newline at end of file +verify.baselineDocumentHighlights(["1", "2", "3"]); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesConstructor.ts b/tests/cases/fourslash/getOccurrencesConstructor.ts index 8eb05b6a91e1e..64d0b650b5989 100644 --- a/tests/cases/fourslash/getOccurrencesConstructor.ts +++ b/tests/cases/fourslash/getOccurrencesConstructor.ts @@ -18,4 +18,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesConstructor2.ts b/tests/cases/fourslash/getOccurrencesConstructor2.ts index 3329a59e0a2e5..ed145a7c6dfc0 100644 --- a/tests/cases/fourslash/getOccurrencesConstructor2.ts +++ b/tests/cases/fourslash/getOccurrencesConstructor2.ts @@ -18,4 +18,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesDeclare1.ts b/tests/cases/fourslash/getOccurrencesDeclare1.ts index 96114d3fc9dea..a51d3873db7dc 100644 --- a/tests/cases/fourslash/getOccurrencesDeclare1.ts +++ b/tests/cases/fourslash/getOccurrencesDeclare1.ts @@ -53,4 +53,4 @@ //// [|declare|] function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesDeclare2.ts b/tests/cases/fourslash/getOccurrencesDeclare2.ts index 78028d9499635..ea56f8fe0ba54 100644 --- a/tests/cases/fourslash/getOccurrencesDeclare2.ts +++ b/tests/cases/fourslash/getOccurrencesDeclare2.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesDeclare3.ts b/tests/cases/fourslash/getOccurrencesDeclare3.ts index 8c1bf7e9658b2..7eab3d8317237 100644 --- a/tests/cases/fourslash/getOccurrencesDeclare3.ts +++ b/tests/cases/fourslash/getOccurrencesDeclare3.ts @@ -61,4 +61,4 @@ ////[|declare|] module dm { } ////export class EC { } -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesExport1.ts b/tests/cases/fourslash/getOccurrencesExport1.ts index 71202a820a738..4380a16264e31 100644 --- a/tests/cases/fourslash/getOccurrencesExport1.ts +++ b/tests/cases/fourslash/getOccurrencesExport1.ts @@ -53,4 +53,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesExport2.ts b/tests/cases/fourslash/getOccurrencesExport2.ts index 442642d77ec74..1ffc587ac4bd0 100644 --- a/tests/cases/fourslash/getOccurrencesExport2.ts +++ b/tests/cases/fourslash/getOccurrencesExport2.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesExport3.ts b/tests/cases/fourslash/getOccurrencesExport3.ts index 04ee55bb1e680..505ebb007436b 100644 --- a/tests/cases/fourslash/getOccurrencesExport3.ts +++ b/tests/cases/fourslash/getOccurrencesExport3.ts @@ -61,4 +61,4 @@ ////declare module dm { } ////[|export|] class EC { } -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesIfElse.ts b/tests/cases/fourslash/getOccurrencesIfElse.ts index 66622be400822..ad35e0d7098b4 100644 --- a/tests/cases/fourslash/getOccurrencesIfElse.ts +++ b/tests/cases/fourslash/getOccurrencesIfElse.ts @@ -22,4 +22,4 @@ ////} ////[|else|] { } -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesIfElse2.ts b/tests/cases/fourslash/getOccurrencesIfElse2.ts index df77687aac614..8421dae2d3315 100644 --- a/tests/cases/fourslash/getOccurrencesIfElse2.ts +++ b/tests/cases/fourslash/getOccurrencesIfElse2.ts @@ -22,4 +22,4 @@ ////} ////else { } -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesIfElse3.ts b/tests/cases/fourslash/getOccurrencesIfElse3.ts index aec1a6911af5c..e352523b97d0c 100644 --- a/tests/cases/fourslash/getOccurrencesIfElse3.ts +++ b/tests/cases/fourslash/getOccurrencesIfElse3.ts @@ -22,4 +22,4 @@ ////} ////else { } -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesIfElse4.ts b/tests/cases/fourslash/getOccurrencesIfElse4.ts index 667462527414a..1ba0bdae32ed4 100644 --- a/tests/cases/fourslash/getOccurrencesIfElse4.ts +++ b/tests/cases/fourslash/getOccurrencesIfElse4.ts @@ -23,8 +23,4 @@ ////else { } -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - - verify.occurrencesAtPositionCount(1); -} \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesIfElse5.ts b/tests/cases/fourslash/getOccurrencesIfElse5.ts index 7360a803027d1..651b5bc107067 100644 --- a/tests/cases/fourslash/getOccurrencesIfElse5.ts +++ b/tests/cases/fourslash/getOccurrencesIfElse5.ts @@ -22,21 +22,4 @@ ////} ////else/*13*/ { } -function verifyOccurrencesAtMarker(marker: string, count: number) { - goTo.marker(marker); - verify.occurrencesAtPositionCount(count); -} - -verifyOccurrencesAtMarker("1", 7); -verifyOccurrencesAtMarker("2", 2); -verifyOccurrencesAtMarker("3", 2); -verifyOccurrencesAtMarker("4", 2); -verifyOccurrencesAtMarker("5", 2); -verifyOccurrencesAtMarker("6", 1); -verifyOccurrencesAtMarker("7", 1); -verifyOccurrencesAtMarker("8", 7); -verifyOccurrencesAtMarker("9", 7); -verifyOccurrencesAtMarker("10", 7); -verifyOccurrencesAtMarker("11", 7); -verifyOccurrencesAtMarker("12", 7); -verifyOccurrencesAtMarker("13", 7); +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesIfElseBroken.ts b/tests/cases/fourslash/getOccurrencesIfElseBroken.ts index c5460b3e634d3..6bd57a42b9da2 100644 --- a/tests/cases/fourslash/getOccurrencesIfElseBroken.ts +++ b/tests/cases/fourslash/getOccurrencesIfElseBroken.ts @@ -12,7 +12,7 @@ // It would be nice if in the future, // We could include that last 'else'. -verify.rangesAreOccurrences(false); - -goTo.marker(); -verify.occurrencesAtPositionCount(2); \ No newline at end of file +verify.baselineCommands( + { type: "documentHighlights" }, + { type: "documentHighlights", markerOrRange: "" } +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesIsWriteAccess.ts b/tests/cases/fourslash/getOccurrencesIsWriteAccess.ts index e31b199217f65..887e8c1e1564c 100644 --- a/tests/cases/fourslash/getOccurrencesIsWriteAccess.ts +++ b/tests/cases/fourslash/getOccurrencesIsWriteAccess.ts @@ -18,8 +18,4 @@ ////[|{| "isWriteAccess": true |}x|] += 1; ////[|{| "isWriteAccess": true |}x|] <<= 1; -goTo.rangeStart(test.ranges()[0]); - -for (const range of test.ranges()) { - verify.occurrencesAtPositionContains(range, range.marker.data.isWriteAccess); -} +verify.baselineDocumentHighlights(test.ranges()[0]); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts index eef8454f7ca25..05ffde9c70e71 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) continue label5; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts index 1a546730e2b35..69d241edaead7 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue2.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) continue label5; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts index 6cb54f708dc37..a63b59f327287 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue3.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) continue label5; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts index 2c4ef310bad6c..ce09fb0ad4239 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue4.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) continue label5; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts index 9dc4c6b04c6e1..9becad4a37b34 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue5.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) continue label5; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts index 957f8c4af0175..54d001de7cd05 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinue6.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) co/*10*/ntinue label5; -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts b/tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts index 957f8c4af0175..54d001de7cd05 100644 --- a/tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts +++ b/tests/cases/fourslash/getOccurrencesLoopBreakContinueNegatives.ts @@ -63,4 +63,4 @@ //// ////label7: while (true) co/*10*/ntinue label5; -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts b/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts index ab3adeb477666..cb0356cc9956d 100644 --- a/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts +++ b/tests/cases/fourslash/getOccurrencesModifiersNegatives1.ts @@ -34,7 +34,4 @@ ////[|{| "count": 0 |}public|] [|{| "count": 0 |}static|] [|{| "count": 0 |}protected|] [|{| "count": 0 |}private|] f; ////[|{| "count": 0 |}protected|] [|{| "count": 0 |}static|] [|{| "count": 0 |}public|] g; -for (const range of test.ranges()) { - goTo.rangeStart(range); - verify.occurrencesAtPositionCount(range.marker.data.count); -} +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts b/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts index 4ab0e7146258d..d8fdc1d497328 100644 --- a/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts +++ b/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts @@ -4,5 +4,4 @@ ////import * as react from "react" assert { cache: /**/0 }; ////react.Children; -goTo.marker(); -verify.occurrencesAtPositionCount(0); +verify.baselineDocumentHighlights(""); diff --git a/tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts b/tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts index 8ce60b2130619..8529cde710ad4 100644 --- a/tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts +++ b/tests/cases/fourslash/getOccurrencesOfAnonymousFunction.ts @@ -5,4 +5,4 @@ //// return 0; ////}) -verify.rangesAreOccurrences(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts b/tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts index 1fff5669c5c0a..c43c82b4be503 100644 --- a/tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts +++ b/tests/cases/fourslash/getOccurrencesOfAnonymousFunction2.ts @@ -10,8 +10,4 @@ ////fo/*global*/o(); ////var f = foo; -goTo.marker("local"); -verify.occurrencesAtPositionCount(2); - -goTo.marker("global"); -verify.occurrencesAtPositionCount(3); \ No newline at end of file +verify.baselineDocumentHighlights(["local", "global"]); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesOfDecorators.ts b/tests/cases/fourslash/getOccurrencesOfDecorators.ts index 207e6877d9913..fd4322dd16d19 100644 --- a/tests/cases/fourslash/getOccurrencesOfDecorators.ts +++ b/tests/cases/fourslash/getOccurrencesOfDecorators.ts @@ -10,5 +10,4 @@ //// return target; ////} -goTo.marker("1"); -verify.occurrencesAtPositionCount(3); +verify.baselineDocumentHighlights("1"); diff --git a/tests/cases/fourslash/getOccurrencesOfUndefinedSymbol.ts b/tests/cases/fourslash/getOccurrencesOfUndefinedSymbol.ts index 96c3cdc2e39ae..1260ce8e9a5d8 100644 --- a/tests/cases/fourslash/getOccurrencesOfUndefinedSymbol.ts +++ b/tests/cases/fourslash/getOccurrencesOfUndefinedSymbol.ts @@ -16,5 +16,4 @@ // "any" should not be highlighted -goTo.marker(); -verify.occurrencesAtPositionCount(0); +verify.baselineDocumentHighlights(""); diff --git a/tests/cases/fourslash/getOccurrencesPrivate1.ts b/tests/cases/fourslash/getOccurrencesPrivate1.ts index bb6014515072d..c9259eb7db4e6 100644 --- a/tests/cases/fourslash/getOccurrencesPrivate1.ts +++ b/tests/cases/fourslash/getOccurrencesPrivate1.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesPrivate2.ts b/tests/cases/fourslash/getOccurrencesPrivate2.ts index 914db1a15a9d9..3bca1a79683b5 100644 --- a/tests/cases/fourslash/getOccurrencesPrivate2.ts +++ b/tests/cases/fourslash/getOccurrencesPrivate2.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts b/tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts index 3a9078cfc6361..e4f2d55c55954 100644 --- a/tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts +++ b/tests/cases/fourslash/getOccurrencesPropertyInAliasedInterface.ts @@ -16,4 +16,4 @@ //// ////(new C()).[|abc|]; -verify.rangesAreOccurrences(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesProtected1.ts b/tests/cases/fourslash/getOccurrencesProtected1.ts index b5b3442ec00b2..d4a193a4127fe 100644 --- a/tests/cases/fourslash/getOccurrencesProtected1.ts +++ b/tests/cases/fourslash/getOccurrencesProtected1.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesProtected2.ts b/tests/cases/fourslash/getOccurrencesProtected2.ts index 365d78dc9f620..52317cd30718b 100644 --- a/tests/cases/fourslash/getOccurrencesProtected2.ts +++ b/tests/cases/fourslash/getOccurrencesProtected2.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesPublic1.ts b/tests/cases/fourslash/getOccurrencesPublic1.ts index 1ecc816dac547..36d61da9e2f60 100644 --- a/tests/cases/fourslash/getOccurrencesPublic1.ts +++ b/tests/cases/fourslash/getOccurrencesPublic1.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesPublic2.ts b/tests/cases/fourslash/getOccurrencesPublic2.ts index 6d5b4e53c0e94..647d6a62a984c 100644 --- a/tests/cases/fourslash/getOccurrencesPublic2.ts +++ b/tests/cases/fourslash/getOccurrencesPublic2.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReadonly1.ts b/tests/cases/fourslash/getOccurrencesReadonly1.ts index a01d30bed9394..ca5df90cfbd61 100644 --- a/tests/cases/fourslash/getOccurrencesReadonly1.ts +++ b/tests/cases/fourslash/getOccurrencesReadonly1.ts @@ -4,4 +4,4 @@ //// [|readonly|] prop: string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReadonly2.ts b/tests/cases/fourslash/getOccurrencesReadonly2.ts index b6485b77a3702..db51fa6810f04 100644 --- a/tests/cases/fourslash/getOccurrencesReadonly2.ts +++ b/tests/cases/fourslash/getOccurrencesReadonly2.ts @@ -4,4 +4,4 @@ //// [|readonly|] prop: string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReadonly3.ts b/tests/cases/fourslash/getOccurrencesReadonly3.ts index 0ca487c636422..6664c4a8d6108 100644 --- a/tests/cases/fourslash/getOccurrencesReadonly3.ts +++ b/tests/cases/fourslash/getOccurrencesReadonly3.ts @@ -9,6 +9,7 @@ //// } ////} -verify.rangesAreOccurrences(false); -goTo.marker(); -verify.occurrencesAtPositionCount(1); +verify.baselineCommands( + { type: "documentHighlights" }, + { type: "documentHighlights", markerOrRange: "" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesReturn.ts b/tests/cases/fourslash/getOccurrencesReturn.ts index 08467d88f9c9b..597cf288f2b64 100644 --- a/tests/cases/fourslash/getOccurrencesReturn.ts +++ b/tests/cases/fourslash/getOccurrencesReturn.ts @@ -19,4 +19,4 @@ //// [|return|] true; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReturn2.ts b/tests/cases/fourslash/getOccurrencesReturn2.ts index 81c5e3f8985e9..549880dc79490 100644 --- a/tests/cases/fourslash/getOccurrencesReturn2.ts +++ b/tests/cases/fourslash/getOccurrencesReturn2.ts @@ -19,4 +19,4 @@ //// return true; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReturn3.ts b/tests/cases/fourslash/getOccurrencesReturn3.ts index ee739efef39cd..1a8d284ff1439 100644 --- a/tests/cases/fourslash/getOccurrencesReturn3.ts +++ b/tests/cases/fourslash/getOccurrencesReturn3.ts @@ -19,4 +19,4 @@ //// return true; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesReturn4.ts b/tests/cases/fourslash/getOccurrencesReturn4.ts index 4066b093f3d84..daeefed9ab498 100644 --- a/tests/cases/fourslash/getOccurrencesReturn4.ts +++ b/tests/cases/fourslash/getOccurrencesReturn4.ts @@ -19,15 +19,4 @@ //// return/*7*/ true; ////} -function verifyOccurrencesAtMarker(marker: string, count: number) { - goTo.marker(marker); - verify.occurrencesAtPositionCount(count); -} - -verifyOccurrencesAtMarker("1", 4); -verifyOccurrencesAtMarker("2", 4); -verifyOccurrencesAtMarker("3", 4); -verifyOccurrencesAtMarker("4", 4); -verifyOccurrencesAtMarker("5", 1); -verifyOccurrencesAtMarker("6", 3); -verifyOccurrencesAtMarker("7", 3); \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesReturnBroken.ts b/tests/cases/fourslash/getOccurrencesReturnBroken.ts index c8d7fad0635d2..6e847827ba379 100644 --- a/tests/cases/fourslash/getOccurrencesReturnBroken.ts +++ b/tests/cases/fourslash/getOccurrencesReturnBroken.ts @@ -30,21 +30,7 @@ // where if an arrow function starts with a statement, we try to parse a body // as if it was missing curly braces. If the behavior changes in the future, // a change to this test is very much welcome. -verify.rangesAreOccurrences(false); - -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - - switch (i) { - case 0: - case 1: - verify.occurrencesAtPositionCount(0); - break; - case 3: - verify.occurrencesAtPositionCount(1); // 'return' is an instance member - break; - case 4: - verify.occurrencesAtPositionCount(4); - break; - } -} \ No newline at end of file +verify.baselineCommands( + { type: "documentHighlights" }, + { type: "documentHighlights", markerOrRange: test.markers() }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesSetAndGet.ts b/tests/cases/fourslash/getOccurrencesSetAndGet.ts index 2d28328800cf5..cb8974f25c6e4 100644 --- a/tests/cases/fourslash/getOccurrencesSetAndGet.ts +++ b/tests/cases/fourslash/getOccurrencesSetAndGet.ts @@ -23,4 +23,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSetAndGet2.ts b/tests/cases/fourslash/getOccurrencesSetAndGet2.ts index 541efc8050911..b7f9d82851a79 100644 --- a/tests/cases/fourslash/getOccurrencesSetAndGet2.ts +++ b/tests/cases/fourslash/getOccurrencesSetAndGet2.ts @@ -23,4 +23,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSetAndGet3.ts b/tests/cases/fourslash/getOccurrencesSetAndGet3.ts index 32c4d72c1a5ea..cdf521958a1ed 100644 --- a/tests/cases/fourslash/getOccurrencesSetAndGet3.ts +++ b/tests/cases/fourslash/getOccurrencesSetAndGet3.ts @@ -23,4 +23,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesStatic1.ts b/tests/cases/fourslash/getOccurrencesStatic1.ts index d853f16017ddd..3a07f683e053b 100644 --- a/tests/cases/fourslash/getOccurrencesStatic1.ts +++ b/tests/cases/fourslash/getOccurrencesStatic1.ts @@ -54,4 +54,4 @@ //// declare function foo(): string; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts b/tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts index a115ee8221103..35c32192d1c80 100644 --- a/tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts +++ b/tests/cases/fourslash/getOccurrencesStringLiteralTypes.ts @@ -3,4 +3,4 @@ ////function foo(a: "[|option 1|]") { } ////foo("[|option 1|]"); -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesStringLiterals.ts b/tests/cases/fourslash/getOccurrencesStringLiterals.ts index cf17481e0eb37..a4486fff4ee45 100644 --- a/tests/cases/fourslash/getOccurrencesStringLiterals.ts +++ b/tests/cases/fourslash/getOccurrencesStringLiterals.ts @@ -3,4 +3,4 @@ ////var x = "[|string|]"; ////function f(a = "[|initial value|]") { } -goTo.eachRange(() => verify.occurrencesAtPositionCount(1)); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSuper.ts b/tests/cases/fourslash/getOccurrencesSuper.ts index 17089b61f22ac..3e84ecd726f63 100644 --- a/tests/cases/fourslash/getOccurrencesSuper.ts +++ b/tests/cases/fourslash/getOccurrencesSuper.ts @@ -50,4 +50,4 @@ //// static super = 20; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSuper2.ts b/tests/cases/fourslash/getOccurrencesSuper2.ts index 310eac02aaced..292fb9f683a71 100644 --- a/tests/cases/fourslash/getOccurrencesSuper2.ts +++ b/tests/cases/fourslash/getOccurrencesSuper2.ts @@ -50,4 +50,4 @@ //// static super = 20; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSuper3.ts b/tests/cases/fourslash/getOccurrencesSuper3.ts index 8827597500415..43664d8350c66 100644 --- a/tests/cases/fourslash/getOccurrencesSuper3.ts +++ b/tests/cases/fourslash/getOccurrencesSuper3.ts @@ -13,22 +13,4 @@ //// d: () => [|super|].b(); ////} -function checkRange(r: FourSlashInterface.Range, expectedOccurences: FourSlashInterface.Range[]): void { - goTo.rangeStart(r); - if (expectedOccurences.length) { - for (const expected of expectedOccurences) { - verify.occurrencesAtPositionContains(expected); - } - } - else { - verify.occurrencesAtPositionCount(0); - } -} - -let [r0, r1, r2, r3] = test.ranges(); - -checkRange(r0, [r0, r1]); -checkRange(r1, [r0, r1]); -checkRange(r0, [r0, r1]); -checkRange(r2, []); -checkRange(r3, []); \ No newline at end of file +verify.baselineDocumentHighlights(); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesSuperNegatives.ts b/tests/cases/fourslash/getOccurrencesSuperNegatives.ts index e2bb248efc44b..f3b600ff63b98 100644 --- a/tests/cases/fourslash/getOccurrencesSuperNegatives.ts +++ b/tests/cases/fourslash/getOccurrencesSuperNegatives.ts @@ -20,4 +20,4 @@ //// } ////} -goTo.eachRange(() => verify.occurrencesAtPositionCount(0)); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts index 34f9ebcd112d1..56dae55379231 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault.ts @@ -18,4 +18,4 @@ //// [|case|] 16: ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts index 1f265f079f85f..a2f1990ba6027 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault2.ts @@ -18,4 +18,4 @@ //// case 16: ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts index 887e17c2b29e3..0c4712da653b0 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault3.ts @@ -16,4 +16,4 @@ //// [|break|]; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts index 38b3fbfc7ddf4..1decee7fff1c7 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault4.ts @@ -10,5 +10,7 @@ //// contin/*2*/ue foo; ////} -verify.rangesAreOccurrences(false); -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); +verify.baselineCommands( + { type: "documentHighlights" }, + { type: "documentHighlights", markerOrRange: test.markers() }, +); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts index 3c6d5374ce68b..8e4c4766df535 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefault5.ts @@ -18,23 +18,4 @@ //// case 16/*14*/: ////} -function verifyOccurrencesAtMarker(marker: string, count: number) { - goTo.marker(marker); - verify.occurrencesAtPositionCount(count); -} - -verifyOccurrencesAtMarker("1", 9); -verifyOccurrencesAtMarker("2", 9); -verifyOccurrencesAtMarker("3", 9); -verifyOccurrencesAtMarker("4", 9); -verifyOccurrencesAtMarker("5", 9); -verifyOccurrencesAtMarker("6", 6); -verifyOccurrencesAtMarker("7", 6); -verifyOccurrencesAtMarker("8", 6); -verifyOccurrencesAtMarker("9", 6); -verifyOccurrencesAtMarker("10", 6); -verifyOccurrencesAtMarker("11", 9); -verifyOccurrencesAtMarker("12", 9); -verifyOccurrencesAtMarker("13", 9); -verifyOccurrencesAtMarker("14", 0); - +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts b/tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts index 25ee54f8115af..79e848a210a30 100644 --- a/tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts +++ b/tests/cases/fourslash/getOccurrencesSwitchCaseDefaultBroken.ts @@ -6,7 +6,7 @@ //// c/*2*/ase 4: //// case 8: //// case 0xBEEF: -//// de/*4*/fult: +//// de/*4*/fult: //// break; //// /*5*/cas 16: //// c/*3*/ase 12: @@ -29,29 +29,4 @@ //// () => bre/*10*/ak; ////} -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - - switch (i) { - case 1: - case 2: - case 3: - verify.occurrencesAtPositionCount(8); - break; - case 4: - verify.occurrencesAtPositionCount(1); - break; - case 6: - case 7: - case 9: - verify.occurrencesAtPositionCount(8); - break; - case 5: - case 8: - case 10: - case 11: - case 12: - verify.occurrencesAtPositionCount(0); - break; - } -} \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesThis.ts b/tests/cases/fourslash/getOccurrencesThis.ts index bb60e7a1c64f3..bdf456838facc 100644 --- a/tests/cases/fourslash/getOccurrencesThis.ts +++ b/tests/cases/fourslash/getOccurrencesThis.ts @@ -140,4 +140,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThis2.ts b/tests/cases/fourslash/getOccurrencesThis2.ts index 67dc0b82be11e..bc81a68307a67 100644 --- a/tests/cases/fourslash/getOccurrencesThis2.ts +++ b/tests/cases/fourslash/getOccurrencesThis2.ts @@ -140,4 +140,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThis3.ts b/tests/cases/fourslash/getOccurrencesThis3.ts index 432bdaeb8c760..00ac82708f0d9 100644 --- a/tests/cases/fourslash/getOccurrencesThis3.ts +++ b/tests/cases/fourslash/getOccurrencesThis3.ts @@ -140,4 +140,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThis4.ts b/tests/cases/fourslash/getOccurrencesThis4.ts index 462c5269a0d04..2c1596fa3b328 100644 --- a/tests/cases/fourslash/getOccurrencesThis4.ts +++ b/tests/cases/fourslash/getOccurrencesThis4.ts @@ -140,4 +140,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThis5.ts b/tests/cases/fourslash/getOccurrencesThis5.ts index ee9153c39b5f1..336f58c2ca076 100644 --- a/tests/cases/fourslash/getOccurrencesThis5.ts +++ b/tests/cases/fourslash/getOccurrencesThis5.ts @@ -140,4 +140,4 @@ //// } ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThis6.ts b/tests/cases/fourslash/getOccurrencesThis6.ts index 7d79a2db4372c..e478ae44ea555 100644 --- a/tests/cases/fourslash/getOccurrencesThis6.ts +++ b/tests/cases/fourslash/getOccurrencesThis6.ts @@ -177,16 +177,4 @@ //// -function verifyOccurrencesAtMarker(marker: string, count: number) { - goTo.marker(marker); - verify.occurrencesAtPositionCount(count); -} - -verifyOccurrencesAtMarker("1", 5); -verifyOccurrencesAtMarker("2", 6); -verifyOccurrencesAtMarker("3", 1); -verifyOccurrencesAtMarker("4", 5); -verifyOccurrencesAtMarker("5", 6); -verifyOccurrencesAtMarker("6", 0); -verifyOccurrencesAtMarker("7", 6); -verifyOccurrencesAtMarker("8", 5); +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesThisNegatives2.ts b/tests/cases/fourslash/getOccurrencesThisNegatives2.ts index 3f840e8311a77..8ed2a7a24669f 100644 --- a/tests/cases/fourslash/getOccurrencesThisNegatives2.ts +++ b/tests/cases/fourslash/getOccurrencesThisNegatives2.ts @@ -140,4 +140,4 @@ //// } ////} -goTo.eachMarker(() => verify.occurrencesAtPositionCount(0)); +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesThrow.ts b/tests/cases/fourslash/getOccurrencesThrow.ts index 5c955bb8772e1..c47559a3eb934 100644 --- a/tests/cases/fourslash/getOccurrencesThrow.ts +++ b/tests/cases/fourslash/getOccurrencesThrow.ts @@ -42,4 +42,4 @@ //// [|throw|] false; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow2.ts b/tests/cases/fourslash/getOccurrencesThrow2.ts index 4a629b7b2b4b3..535646ff64623 100644 --- a/tests/cases/fourslash/getOccurrencesThrow2.ts +++ b/tests/cases/fourslash/getOccurrencesThrow2.ts @@ -42,4 +42,4 @@ //// throw false; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow3.ts b/tests/cases/fourslash/getOccurrencesThrow3.ts index 5bef04c6abbfa..a3c6950078218 100644 --- a/tests/cases/fourslash/getOccurrencesThrow3.ts +++ b/tests/cases/fourslash/getOccurrencesThrow3.ts @@ -42,4 +42,4 @@ //// throw false; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow4.ts b/tests/cases/fourslash/getOccurrencesThrow4.ts index 741a9d8cc0671..b78985764c3cf 100644 --- a/tests/cases/fourslash/getOccurrencesThrow4.ts +++ b/tests/cases/fourslash/getOccurrencesThrow4.ts @@ -42,4 +42,4 @@ //// throw false; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow5.ts b/tests/cases/fourslash/getOccurrencesThrow5.ts index 91011e5eb120b..b61d1dc09ef56 100644 --- a/tests/cases/fourslash/getOccurrencesThrow5.ts +++ b/tests/cases/fourslash/getOccurrencesThrow5.ts @@ -42,4 +42,4 @@ //// throw false; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow6.ts b/tests/cases/fourslash/getOccurrencesThrow6.ts index 21509659cd88c..9c88af6036c0b 100644 --- a/tests/cases/fourslash/getOccurrencesThrow6.ts +++ b/tests/cases/fourslash/getOccurrencesThrow6.ts @@ -14,4 +14,4 @@ //// [|throw|] 300; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow7.ts b/tests/cases/fourslash/getOccurrencesThrow7.ts index 7a35daeb7759b..9b7673f99e958 100644 --- a/tests/cases/fourslash/getOccurrencesThrow7.ts +++ b/tests/cases/fourslash/getOccurrencesThrow7.ts @@ -19,4 +19,4 @@ //// ////[|throw|] 10; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesThrow8.ts b/tests/cases/fourslash/getOccurrencesThrow8.ts index 0e57520d49228..c5de2fa31c374 100644 --- a/tests/cases/fourslash/getOccurrencesThrow8.ts +++ b/tests/cases/fourslash/getOccurrencesThrow8.ts @@ -19,4 +19,4 @@ //// ////throw 10; -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getOccurrencesTryCatchFinally.ts b/tests/cases/fourslash/getOccurrencesTryCatchFinally.ts index 4b9a47cfe5c4e..10ea5cd48c307 100644 --- a/tests/cases/fourslash/getOccurrencesTryCatchFinally.ts +++ b/tests/cases/fourslash/getOccurrencesTryCatchFinally.ts @@ -16,11 +16,4 @@ ////[|fina/*3*/lly|] { ////} -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - verify.occurrencesAtPositionCount(3); - - test.ranges().forEach(range => { - verify.occurrencesAtPositionContains(range, false); - }); -} +verify.baselineDocumentHighlights(test.markers()); diff --git a/tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts b/tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts index 5d71b133c2775..fdebcc5bb4985 100644 --- a/tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts +++ b/tests/cases/fourslash/getOccurrencesTryCatchFinally2.ts @@ -17,11 +17,4 @@ ////} -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - verify.occurrencesAtPositionCount(2); - - test.ranges().forEach(range => { - verify.occurrencesAtPositionContains(range, false); - }); -} \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts b/tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts index f2a793693640e..6c6f94abfe939 100644 --- a/tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts +++ b/tests/cases/fourslash/getOccurrencesTryCatchFinally3.ts @@ -16,12 +16,4 @@ ////finally { ////} - -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - verify.occurrencesAtPositionCount(2); - - test.ranges().forEach(range => { - verify.occurrencesAtPositionContains(range, false); - }); -} \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts b/tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts index 3d97bd319ea0e..8686376de62d6 100644 --- a/tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts +++ b/tests/cases/fourslash/getOccurrencesTryCatchFinally4.ts @@ -15,16 +15,4 @@ ////} ////finally/*7*/ { ////} -function verifyOccurrencesAtMarker(marker: string, count: number) { - goTo.marker(marker); - verify.occurrencesAtPositionCount(count); -} - -verifyOccurrencesAtMarker("1", 3); -verifyOccurrencesAtMarker("2", 2); -verifyOccurrencesAtMarker("3", 2); -verifyOccurrencesAtMarker("4", 2); -verifyOccurrencesAtMarker("5", 2); -verifyOccurrencesAtMarker("6", 3); -verifyOccurrencesAtMarker("7", 3); -verifyOccurrencesAtMarker("8", 0); \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts b/tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts index 01a202a677cf5..51f6cb94f2d61 100644 --- a/tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts +++ b/tests/cases/fourslash/getOccurrencesTryCatchFinallyBroken.ts @@ -31,27 +31,4 @@ ////} -for (var i = 1; i <= test.markers().length; i++) { - goTo.marker("" + i); - - switch (i) { - case 1: - verify.occurrencesAtPositionCount(0); - break; - case 2: - case 3: - verify.occurrencesAtPositionCount(1); - break; - case 4: - case 5: - case 9: - case 10: - verify.occurrencesAtPositionCount(2); - break; - case 6: - case 7: - case 8: - verify.occurrencesAtPositionCount(3); - break; - } -} \ No newline at end of file +verify.baselineDocumentHighlights(test.markers()); \ No newline at end of file diff --git a/tests/cases/fourslash/getOccurrencesYield.ts b/tests/cases/fourslash/getOccurrencesYield.ts index 001434c8bd077..bf7249063a3cc 100644 --- a/tests/cases/fourslash/getOccurrencesYield.ts +++ b/tests/cases/fourslash/getOccurrencesYield.ts @@ -14,4 +14,4 @@ ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/getPropertySymbolsFromBaseTypesDoesntCrash.ts b/tests/cases/fourslash/getPropertySymbolsFromBaseTypesDoesntCrash.ts index e141a257f2e44..2bddd71cfd21d 100644 --- a/tests/cases/fourslash/getPropertySymbolsFromBaseTypesDoesntCrash.ts +++ b/tests/cases/fourslash/getPropertySymbolsFromBaseTypesDoesntCrash.ts @@ -5,4 +5,4 @@ //// private [|value|]: number; //// } -verify.rangesAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts b/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts index 4f33d589c1dba..f24b118ae34a6 100644 --- a/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts +++ b/tests/cases/fourslash/goToDefinitionAcrossMultipleProjects.ts @@ -19,4 +19,4 @@ /////// ////[|/*use*/x|]++; -verify.goToDefinition("use", ["def1", "def2", "def3", "def4"]); +verify.baselineGoToDefinition("use"); diff --git a/tests/cases/fourslash/goToDefinitionAlias.ts b/tests/cases/fourslash/goToDefinitionAlias.ts index 66afe07b6334f..bd7d06109481e 100644 --- a/tests/cases/fourslash/goToDefinitionAlias.ts +++ b/tests/cases/fourslash/goToDefinitionAlias.ts @@ -23,7 +23,7 @@ //// x; ////} -verify.goToDefinition([ - [["alias1Type", "alias1Value"], "alias1Definition"], - [["alias2Type", "alias2Value"], "alias2Definition"] -]); +verify.baselineGoToDefinition( + "alias1Type", "alias1Value", + "alias2Type", "alias2Value", +); diff --git a/tests/cases/fourslash/goToDefinitionAmbiants.ts b/tests/cases/fourslash/goToDefinitionAmbiants.ts index b0932f0cb0738..af3ff81a3d0d3 100644 --- a/tests/cases/fourslash/goToDefinitionAmbiants.ts +++ b/tests/cases/fourslash/goToDefinitionAmbiants.ts @@ -14,4 +14,4 @@ ////ambientClass./*staticMethodReference*/method(); ////ambientClassVariable./*instanceMethodReference*/method(); -verify.goToDefinitionForMarkers("ambientVariable", "ambientFunction", "constructor", "staticMethod", "instanceMethod"); +verify.baselineGetDefinitionAtPosition("ambientVariableReference", "ambientFunctionReference", "constructorReference", "staticMethodReference", "instanceMethodReference"); diff --git a/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts b/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts index 5d4ec89638064..cd1550e76abf4 100644 --- a/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts +++ b/tests/cases/fourslash/goToDefinitionApparentTypeProperties.ts @@ -8,4 +8,4 @@ ////o.[|/*reference1*/myObjectMethod|](); ////o[[|"/*reference2*/myObjectMethod"|]](); -verify.goToDefinition(["reference1", "reference2"], "definition"); +verify.baselineGoToDefinition("reference1", "reference2"); diff --git a/tests/cases/fourslash/goToDefinitionAwait1.ts b/tests/cases/fourslash/goToDefinitionAwait1.ts index 4d321b0069027..f47c6c6a19535 100644 --- a/tests/cases/fourslash/goToDefinitionAwait1.ts +++ b/tests/cases/fourslash/goToDefinitionAwait1.ts @@ -8,5 +8,7 @@ //// [|/*start2*/await|] Promise.resolve(0); //// } -verify.goToDefinition("start1", "end1"); -verify.goToDefinition("start2", []); +verify.baselineGoToDefinition( + "start1", + "start2" +); diff --git a/tests/cases/fourslash/goToDefinitionAwait2.ts b/tests/cases/fourslash/goToDefinitionAwait2.ts index 1af7de5c060a5..f8e6403e2d775 100644 --- a/tests/cases/fourslash/goToDefinitionAwait2.ts +++ b/tests/cases/fourslash/goToDefinitionAwait2.ts @@ -2,4 +2,4 @@ //// [|/*start*/await|] Promise.resolve(0); -verify.goToDefinition("start", []); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionAwait3.ts b/tests/cases/fourslash/goToDefinitionAwait3.ts index 42edfc3fe06fa..0656fb3b3b524 100644 --- a/tests/cases/fourslash/goToDefinitionAwait3.ts +++ b/tests/cases/fourslash/goToDefinitionAwait3.ts @@ -10,5 +10,7 @@ //// } //// } -verify.goToDefinition("start1", []); -verify.goToDefinition("start2", "end2"); +verify.baselineGoToDefinition( + "start1", + "start2" +); diff --git a/tests/cases/fourslash/goToDefinitionAwait4.ts b/tests/cases/fourslash/goToDefinitionAwait4.ts index 75bc3cfb98679..494ef247d3d76 100644 --- a/tests/cases/fourslash/goToDefinitionAwait4.ts +++ b/tests/cases/fourslash/goToDefinitionAwait4.ts @@ -6,4 +6,4 @@ //// } //// } -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts b/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts index ed7e0e9045c1a..1adae5e048db9 100644 --- a/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts +++ b/tests/cases/fourslash/goToDefinitionBuiltInTypes.ts @@ -5,6 +5,4 @@ ////var b: /*boolean*/boolean; ////var v: /*void*/void; -for (const marker of test.markerNames()) { - verify.goToDefinition(marker, []); -} +verify.baselineGoToDefinition(...test.markerNames()); diff --git a/tests/cases/fourslash/goToDefinitionBuiltInValues.ts b/tests/cases/fourslash/goToDefinitionBuiltInValues.ts index da9bf31f2c27e..d715bcdb7c7bd 100644 --- a/tests/cases/fourslash/goToDefinitionBuiltInValues.ts +++ b/tests/cases/fourslash/goToDefinitionBuiltInValues.ts @@ -6,6 +6,4 @@ ////var t = /*true*/true; ////var f = /*false*/false; -for (const marker of test.markerNames()) { - verify.goToDefinition(marker, []); -} +verify.baselineGoToDefinition(...test.markerNames()); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionCSSPatternAmbientModule.ts b/tests/cases/fourslash/goToDefinitionCSSPatternAmbientModule.ts index 16a53b7501ff0..eb1674a78cd2b 100644 --- a/tests/cases/fourslash/goToDefinitionCSSPatternAmbientModule.ts +++ b/tests/cases/fourslash/goToDefinitionCSSPatternAmbientModule.ts @@ -14,4 +14,4 @@ // @Filename: index.ts //// import styles from [|/*1*/"./index.css"|]; -verify.goToDefinition("1", [{ marker: "2a", unverified: true }, "2b"]); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts b/tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts index 650c177cc933c..abafe5aa1dfe1 100644 --- a/tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts +++ b/tests/cases/fourslash/goToDefinitionClassStaticBlocks.ts @@ -9,8 +9,8 @@ //// [|/*classStaticBocks3*/static|] {} ////} -verify.goToDefinition({ - classStaticBocks1: ["classStaticBocks1", "classStaticBocks2", "classStaticBocks3"], - classStaticBocks2: ["classStaticBocks1", "classStaticBocks2", "classStaticBocks3"], - classStaticBocks3: ["classStaticBocks1", "classStaticBocks2", "classStaticBocks3"], -}); +verify.baselineGoToDefinition( + "classStaticBocks1", + "classStaticBocks2", + "classStaticBocks3", +); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts b/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts index b9f17611b18a5..a5b149932134c 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOfClassExpression01.ts @@ -6,4 +6,4 @@ //// } ////} -verify.goToDefinition("usage", "definition"); +verify.baselineGoToDefinition("usage"); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts b/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts index 8f1bc2496dc0b..da82e6cd3a314 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOfClassWhenClassIsPrecededByNamespace01.ts @@ -11,4 +11,4 @@ //// ////var x = new [|/*usage*/Foo|](); -verify.goToDefinition("usage", "definition"); +verify.baselineGoToDefinition("usage"); diff --git a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts index edc9e85d44426..4151e7c708fb8 100644 --- a/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionConstructorOverloads.ts @@ -9,8 +9,8 @@ ////var constructorOverload = new [|/*constructorOverloadReference1*/ConstructorOverload|](); ////var constructorOverload = new [|/*constructorOverloadReference2*/ConstructorOverload|]("foo"); -verify.goToDefinition({ - constructorOverloadReference1: "constructorOverload1", - constructorOverloadReference2: "constructorOverload2", - constructorOverload1: "constructorDefinition" -}); +verify.baselineGoToDefinition( + "constructorOverloadReference1", + "constructorOverloadReference2", + "constructorOverload1", +); diff --git a/tests/cases/fourslash/goToDefinitionDecorator.ts b/tests/cases/fourslash/goToDefinitionDecorator.ts index 535726aef0889..035d75207b197 100644 --- a/tests/cases/fourslash/goToDefinitionDecorator.ts +++ b/tests/cases/fourslash/goToDefinitionDecorator.ts @@ -16,7 +16,7 @@ //// return target => target; ////} -verify.goToDefinition({ - decoratorUse: "decoratorDefinition", - decoratorFactoryUse: "decoratorFactoryDefinition" -}); +verify.baselineGoToDefinition( + "decoratorUse", + "decoratorFactoryUse", +); diff --git a/tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts b/tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts index 4943c23e392e6..15066191fbbc0 100644 --- a/tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionDecoratorOverloads.ts @@ -13,7 +13,7 @@ //// @[|/*useDecSymbol*/dec|] [s]() {} ////} -verify.goToDefinition({ - useDecString: "defDecString", - useDecSymbol: "defDecSymbol" -}); +verify.baselineGoToDefinition( + "useDecString", + "useDecSymbol", +); diff --git a/tests/cases/fourslash/goToDefinitionDestructuredRequire1.ts b/tests/cases/fourslash/goToDefinitionDestructuredRequire1.ts index 68c6cb35ca2b3..2f764e9923359 100644 --- a/tests/cases/fourslash/goToDefinitionDestructuredRequire1.ts +++ b/tests/cases/fourslash/goToDefinitionDestructuredRequire1.ts @@ -10,4 +10,4 @@ //// const { Util } = require('./util'); //// new [|Util/*1*/|]() -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionDestructuredRequire2.ts b/tests/cases/fourslash/goToDefinitionDestructuredRequire2.ts index 2fa27564ff9bb..0dc989c988e57 100644 --- a/tests/cases/fourslash/goToDefinitionDestructuredRequire2.ts +++ b/tests/cases/fourslash/goToDefinitionDestructuredRequire2.ts @@ -14,4 +14,5 @@ //// const { Util } = require('./reexport'); //// new [|Util/*1*/|]() -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); + diff --git a/tests/cases/fourslash/goToDefinitionDifferentFile.ts b/tests/cases/fourslash/goToDefinitionDifferentFile.ts index 67e8c44c84c4e..16179d873cdc4 100644 --- a/tests/cases/fourslash/goToDefinitionDifferentFile.ts +++ b/tests/cases/fourslash/goToDefinitionDifferentFile.ts @@ -14,4 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); +verify.baselineGetDefinitionAtPosition("remoteVariableReference", "remoteFunctionReference", "remoteClassReference", "remoteInterfaceReference", "remoteModuleReference"); diff --git a/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts b/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts index f577712c93082..85a9ddb6bb501 100644 --- a/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts +++ b/tests/cases/fourslash/goToDefinitionDifferentFileIndirectly.ts @@ -21,4 +21,4 @@ ////class rem2fooCls implements /*remoteInterfaceReference*/rem2Int { } ////var rem2fooVar = /*remoteModuleReference*/rem2Mod.foo; -verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule") +verify.baselineGetDefinitionAtPosition("remoteVariableReference", "remoteFunctionReference", "remoteClassReference", "remoteInterfaceReference", "remoteModuleReference") diff --git a/tests/cases/fourslash/goToDefinitionDynamicImport1.ts b/tests/cases/fourslash/goToDefinitionDynamicImport1.ts index d85ba12d72529..cb3272234e90d 100644 --- a/tests/cases/fourslash/goToDefinitionDynamicImport1.ts +++ b/tests/cases/fourslash/goToDefinitionDynamicImport1.ts @@ -6,5 +6,4 @@ //// import([|"./f/*1*/oo"|]) //// var x = import([|"./fo/*2*/o"|]) -verify.goToDefinition("1", "Destination"); -verify.goToDefinition("2", "Destination"); \ No newline at end of file +verify.baselineGoToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionDynamicImport2.ts b/tests/cases/fourslash/goToDefinitionDynamicImport2.ts index 678628d641fdd..2c55c82f127bd 100644 --- a/tests/cases/fourslash/goToDefinitionDynamicImport2.ts +++ b/tests/cases/fourslash/goToDefinitionDynamicImport2.ts @@ -8,4 +8,4 @@ //// foo.[|b/*1*/ar|](); //// }) -verify.goToDefinition("1", "Destination"); \ No newline at end of file +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionDynamicImport3.ts b/tests/cases/fourslash/goToDefinitionDynamicImport3.ts index dc63696d62a52..62afcc89dfffb 100644 --- a/tests/cases/fourslash/goToDefinitionDynamicImport3.ts +++ b/tests/cases/fourslash/goToDefinitionDynamicImport3.ts @@ -5,4 +5,4 @@ //// import('./foo').then(({ [|ba/*1*/r|] }) => undefined); -verify.goToDefinition("1", "Destination"); \ No newline at end of file +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionDynamicImport4.ts b/tests/cases/fourslash/goToDefinitionDynamicImport4.ts index dc63696d62a52..62afcc89dfffb 100644 --- a/tests/cases/fourslash/goToDefinitionDynamicImport4.ts +++ b/tests/cases/fourslash/goToDefinitionDynamicImport4.ts @@ -5,4 +5,4 @@ //// import('./foo').then(({ [|ba/*1*/r|] }) => undefined); -verify.goToDefinition("1", "Destination"); \ No newline at end of file +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExpandoElementAccess.ts b/tests/cases/fourslash/goToDefinitionExpandoElementAccess.ts index 67efdb195e690..8a5584c0ada11 100644 --- a/tests/cases/fourslash/goToDefinitionExpandoElementAccess.ts +++ b/tests/cases/fourslash/goToDefinitionExpandoElementAccess.ts @@ -4,4 +4,4 @@ ////f[/*0*/"x"] = 0; ////f[[|/*1*/"x"|]] = 1; -verify.goToDefinition("1", ["0", "1"]); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName.ts index f91d8a9e34610..ff6a1b8606402 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName.ts @@ -7,4 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts index 913b297feb898..7e6ad20a5d32c 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName2.ts @@ -8,4 +8,4 @@ /////*2*/class Foo {} ////export var x = 0; -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts index d6e28263239d8..60d8269b6d000 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName3.ts @@ -9,4 +9,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts index 50d679f7e9e50..5c3f198a09b19 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName4.ts @@ -3,4 +3,4 @@ // @Filename: b.ts ////import n = require('unknown/*1*/'); -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts index 9dede44a7bcd5..8be6aa2d47ba7 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName5.ts @@ -5,4 +5,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts index 51b96cfe3baeb..007bf73799f72 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName6.ts @@ -8,4 +8,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts index 591577bf47020..9d771a90e385b 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName7.ts @@ -8,4 +8,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts index 636c234c79e47..26bbe13dc6f35 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName8.ts @@ -8,4 +8,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts b/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts index 60decba626cd5..e9b9555437487 100644 --- a/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts +++ b/tests/cases/fourslash/goToDefinitionExternalModuleName9.ts @@ -8,4 +8,4 @@ //// class Foo { } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts index ca3883be86c9f..e6eacd60c9cc5 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloads.ts @@ -8,9 +8,9 @@ ////[|/*functionOverloadReference2*/functionOverload|]("123"); ////[|/*brokenOverload*/functionOverload|]({}); -verify.goToDefinition({ - functionOverloadReference1: "functionOverload1", - functionOverloadReference2: "functionOverload2", - brokenOverload: "functionOverload1", - functionOverload1: "functionOverloadDefinition" -}); +verify.baselineGoToDefinition( + "functionOverloadReference1", + "functionOverloadReference2", + "brokenOverload", + "functionOverload1", +); diff --git a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts index 08ec93b5eeac5..4d847e1a3b3c8 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionOverloadsInClass.ts @@ -11,7 +11,7 @@ //// constructor() { } ////} -verify.goToDefinition({ - staticFunctionOverload: "staticFunctionOverloadDefinition", - functionOverload: "functionOverloadDefinition" -}); +verify.baselineGoToDefinition( + "staticFunctionOverload", + "functionOverload", +); diff --git a/tests/cases/fourslash/goToDefinitionFunctionType.ts b/tests/cases/fourslash/goToDefinitionFunctionType.ts index 1b50de3af6dfe..33dfa11e86b31 100644 --- a/tests/cases/fourslash/goToDefinitionFunctionType.ts +++ b/tests/cases/fourslash/goToDefinitionFunctionType.ts @@ -14,4 +14,4 @@ //// } ////} -verify.goToDefinitionForMarkers("const", "cb", "prop"); +verify.baselineGetDefinitionAtPosition("constReference", "cbReference", "propReference"); diff --git a/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts b/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts index 2d1dde785a777..663fd8a60148e 100644 --- a/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts +++ b/tests/cases/fourslash/goToDefinitionImplicitConstructor.ts @@ -4,4 +4,4 @@ ////} ////var implicitConstructor = new /*constructorReference*/ImplicitConstructor(); -verify.goToDefinitionForMarkers("constructor"); +verify.baselineGetDefinitionAtPosition("constructorReference"); diff --git a/tests/cases/fourslash/goToDefinitionImport1.ts b/tests/cases/fourslash/goToDefinitionImport1.ts index f7a3655e9af1f..f566bb4781ad7 100644 --- a/tests/cases/fourslash/goToDefinitionImport1.ts +++ b/tests/cases/fourslash/goToDefinitionImport1.ts @@ -6,4 +6,4 @@ // @Filename: /a.ts ////import { foo } from [|"./b/*1*/"|]; -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionImport2.ts b/tests/cases/fourslash/goToDefinitionImport2.ts index 77c6bc7647827..2a24e78a9ae89 100644 --- a/tests/cases/fourslash/goToDefinitionImport2.ts +++ b/tests/cases/fourslash/goToDefinitionImport2.ts @@ -6,4 +6,4 @@ // @Filename: /a.ts ////import { foo } [|from/*1*/|] "./b"; -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionImport3.ts b/tests/cases/fourslash/goToDefinitionImport3.ts index 7c38f7c94f645..f97dea1b6ad17 100644 --- a/tests/cases/fourslash/goToDefinitionImport3.ts +++ b/tests/cases/fourslash/goToDefinitionImport3.ts @@ -6,4 +6,4 @@ // @Filename: /a.ts ////import { foo } [|from /*1*/|] "./b"; -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionImportMeta.ts b/tests/cases/fourslash/goToDefinitionImportMeta.ts index 723d9208b88b0..9c4c8e69b56fa 100644 --- a/tests/cases/fourslash/goToDefinitionImportMeta.ts +++ b/tests/cases/fourslash/goToDefinitionImportMeta.ts @@ -10,6 +10,6 @@ ////interface ImportMeta { ////} -verify.goToDefinition("reference", []); +verify.baselineGoToDefinition("reference"); verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionImportedNames.ts b/tests/cases/fourslash/goToDefinitionImportedNames.ts index c525783b9c2b7..3cc491f634469 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames.ts @@ -15,4 +15,4 @@ ////} -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames10.ts b/tests/cases/fourslash/goToDefinitionImportedNames10.ts index ebf2bb2f92435..38ca7bd4a9d0c 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames10.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames10.ts @@ -12,4 +12,4 @@ //// [|/*classAliasDefinition*/Class|]; -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames11.ts b/tests/cases/fourslash/goToDefinitionImportedNames11.ts index 1eb3494c3a74e..4f57ea75abf33 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames11.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames11.ts @@ -12,4 +12,4 @@ //// [|/*classAliasDefinition*/Class|]; -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames2.ts b/tests/cases/fourslash/goToDefinitionImportedNames2.ts index 58a5d018eefa8..62cdb1a6b34b3 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames2.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames2.ts @@ -14,4 +14,4 @@ //// x; ////} -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames3.ts b/tests/cases/fourslash/goToDefinitionImportedNames3.ts index ea52f660c11f2..45ed79a14d334 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames3.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames3.ts @@ -27,4 +27,4 @@ //// x; ////} -verify.goToDefinition(["classReference", "classAliasDefinition"], "classDefinition"); +verify.baselineGoToDefinition("classReference", "classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames4.ts b/tests/cases/fourslash/goToDefinitionImportedNames4.ts index 435ab41a2ad48..bde7a2027c4de 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames4.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames4.ts @@ -14,4 +14,4 @@ //// x; ////} -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames5.ts b/tests/cases/fourslash/goToDefinitionImportedNames5.ts index 7965b341d9efc..009cfeebe65d5 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames5.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames5.ts @@ -14,4 +14,4 @@ //// x; ////} -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames6.ts b/tests/cases/fourslash/goToDefinitionImportedNames6.ts index a8acf33e42af0..2ec689d8e3a70 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames6.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames6.ts @@ -14,4 +14,4 @@ //// x; ////} -verify.goToDefinition("moduleAliasDefinition", "moduleDefinition"); +verify.baselineGoToDefinition("moduleAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames7.ts b/tests/cases/fourslash/goToDefinitionImportedNames7.ts index d798dcfff0c05..88b0919960503 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames7.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames7.ts @@ -10,4 +10,4 @@ ////} ////export default Class; -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames8.ts b/tests/cases/fourslash/goToDefinitionImportedNames8.ts index ad3d1c107853d..03eb98f218554 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames8.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames8.ts @@ -11,4 +11,4 @@ ////} //// export { Class }; -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImportedNames9.ts b/tests/cases/fourslash/goToDefinitionImportedNames9.ts index 2f838efca26b1..15f31acb11d9b 100644 --- a/tests/cases/fourslash/goToDefinitionImportedNames9.ts +++ b/tests/cases/fourslash/goToDefinitionImportedNames9.ts @@ -12,4 +12,4 @@ //// [|/*classAliasDefinition*/Class|]; -verify.goToDefinition("classAliasDefinition", "classDefinition"); +verify.baselineGoToDefinition("classAliasDefinition"); diff --git a/tests/cases/fourslash/goToDefinitionImports.ts b/tests/cases/fourslash/goToDefinitionImports.ts index 1debd3c6b6f9c..5727ffbb6ce6e 100644 --- a/tests/cases/fourslash/goToDefinitionImports.ts +++ b/tests/cases/fourslash/goToDefinitionImports.ts @@ -17,10 +17,10 @@ ////[|/*aUse*/a|]; ////[|/*bUse*/b|]; -verify.goToDefinition({ - aUse: "aDef", // Namespace import isn't "skipped" - fUse: "fDef", - xUse: "xDef", - bUse: "bDef", -}); +verify.baselineGoToDefinition( + "aUse", // Namespace import isn't "skipped" + "fUse", + "xUse", + "bUse", +); diff --git a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts index 4a09a931bf6e9..4df3b8397bf8e 100644 --- a/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts +++ b/tests/cases/fourslash/goToDefinitionInMemberDeclaration.ts @@ -19,9 +19,9 @@ //// } ////} -verify.goToDefinition([ - [["interfaceReference", "interfaceReferenceInList", "interfaceReferenceInConstructor"], "interfaceDefinition"], - [["classReference", "classReferenceInInitializer"], "classDefinition"], - [["enumReference", "enumReferenceInInitializer"], "enumDefinition"], - ["selfReference", "selfDefinition"] -]); +verify.baselineGoToDefinition( + "interfaceReference", "interfaceReferenceInList", "interfaceReferenceInConstructor", + "classReference", "classReferenceInInitializer", + "enumReference", "enumReferenceInInitializer", + "selfReference", +); diff --git a/tests/cases/fourslash/goToDefinitionInTypeArgument.ts b/tests/cases/fourslash/goToDefinitionInTypeArgument.ts index a9bddeda4344a..671d788157ca0 100644 --- a/tests/cases/fourslash/goToDefinitionInTypeArgument.ts +++ b/tests/cases/fourslash/goToDefinitionInTypeArgument.ts @@ -6,4 +6,4 @@ //// ////var x = new Fo/*fooReference*/o(); -verify.goToDefinitionForMarkers("bar", "foo"); +verify.baselineGetDefinitionAtPosition("barReference", "fooReference"); diff --git a/tests/cases/fourslash/goToDefinitionIndexSignature.ts b/tests/cases/fourslash/goToDefinitionIndexSignature.ts index 169e3580aea53..62c3663c78eab 100644 --- a/tests/cases/fourslash/goToDefinitionIndexSignature.ts +++ b/tests/cases/fourslash/goToDefinitionIndexSignature.ts @@ -19,8 +19,10 @@ ////k.[|/*useb*/b|]; ////k.[|/*useab*/ab|]; -verify.goToDefinition("useI", ["defI"]); -verify.goToDefinition("useIJ", ["defI", "defJ"]); -verify.goToDefinition("usea", ["defa"]); -verify.goToDefinition("useb", ["defb"]); -verify.goToDefinition("useab", ["defa", "defb"]); +verify.baselineGoToDefinition( + "useI", + "useIJ", + "usea", + "useb", + "useab", +); diff --git a/tests/cases/fourslash/goToDefinitionIndexSignature2.ts b/tests/cases/fourslash/goToDefinitionIndexSignature2.ts index 9188eaf67d0a1..a80eabfa5bc31 100644 --- a/tests/cases/fourslash/goToDefinitionIndexSignature2.ts +++ b/tests/cases/fourslash/goToDefinitionIndexSignature2.ts @@ -8,4 +8,4 @@ ////const o = {}; ////o.[|/*use*/foo|]; -verify.goToDefinition("use", []); +verify.baselineGoToDefinition("use"); diff --git a/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts b/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts index 46d9e0182a4d0..8db4a4feb62f6 100644 --- a/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts +++ b/tests/cases/fourslash/goToDefinitionInterfaceAfterImplement.ts @@ -11,4 +11,4 @@ //// } ////} -verify.goToDefinitionForMarkers("interface"); +verify.baselineGetDefinitionAtPosition("interfaceReference"); diff --git a/tests/cases/fourslash/goToDefinitionJsModuleExports.ts b/tests/cases/fourslash/goToDefinitionJsModuleExports.ts index cd367986d10f7..5d49d7174f1fe 100644 --- a/tests/cases/fourslash/goToDefinitionJsModuleExports.ts +++ b/tests/cases/fourslash/goToDefinitionJsModuleExports.ts @@ -9,5 +9,7 @@ ////x./*defFn*/test3 = function () { } ////x.[|/*refFn*/test3|](); -verify.goToDefinition("ref", "def"); -verify.goToDefinition("refFn", "defFn"); +verify.baselineGoToDefinition( + "ref", + "refFn", +); diff --git a/tests/cases/fourslash/goToDefinitionJsModuleName.ts b/tests/cases/fourslash/goToDefinitionJsModuleName.ts index 8514e7070e465..3910a57be097a 100644 --- a/tests/cases/fourslash/goToDefinitionJsModuleName.ts +++ b/tests/cases/fourslash/goToDefinitionJsModuleName.ts @@ -7,4 +7,4 @@ // @Filename: bar.js ////var x = require([|/*1*/"./foo"|]); -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionJsModuleNameAtImportName.ts b/tests/cases/fourslash/goToDefinitionJsModuleNameAtImportName.ts index 3763387efd24a..dfc0e277d859a 100644 --- a/tests/cases/fourslash/goToDefinitionJsModuleNameAtImportName.ts +++ b/tests/cases/fourslash/goToDefinitionJsModuleNameAtImportName.ts @@ -17,4 +17,4 @@ ////import [|/*importDefTs*/BlahModule|] = require("./foo.js"); ////new [|/*importUsageTs*/BlahModule|].Blah() -verify.goToDefinition(["importDef", "importUsage", "importDefTs", "importUsageTs"], "moduleDef"); \ No newline at end of file +verify.baselineGoToDefinition("importDef", "importUsage", "importDefTs", "importUsageTs"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionJsxNotSet.ts b/tests/cases/fourslash/goToDefinitionJsxNotSet.ts index f0daa71b6fde5..fce6d3de2b0d2 100644 --- a/tests/cases/fourslash/goToDefinitionJsxNotSet.ts +++ b/tests/cases/fourslash/goToDefinitionJsxNotSet.ts @@ -14,4 +14,4 @@ //// import Foo from './foo'; //// const a = <[|/*use*/Foo|] /> -verify.goToDefinition("use", "def"); \ No newline at end of file +verify.baselineGoToDefinition("use"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionLabels.ts b/tests/cases/fourslash/goToDefinitionLabels.ts index 62b6ab54a629a..1e744ede49940 100644 --- a/tests/cases/fourslash/goToDefinitionLabels.ts +++ b/tests/cases/fourslash/goToDefinitionLabels.ts @@ -9,11 +9,11 @@ //// } ////} -verify.goToDefinition({ - 1: "label1Definition", - 2: "label2Definition", +verify.baselineGoToDefinition( + "1", + "2", // labels across function boundaries - 3: "label1Definition", + "3", // undefined label - 4: [] -}); + "4", +); diff --git a/tests/cases/fourslash/goToDefinitionMetaProperty.ts b/tests/cases/fourslash/goToDefinitionMetaProperty.ts index 1436a002dfae7..0fe67c3cf9e47 100644 --- a/tests/cases/fourslash/goToDefinitionMetaProperty.ts +++ b/tests/cases/fourslash/goToDefinitionMetaProperty.ts @@ -8,10 +8,12 @@ ////im/*5*/port.m; ////class /*classDefinition*/c { constructor() { n/*6*/ew.[|t/*7*/arget|]; } } -verify.goToDefinition("1", []); -verify.goToDefinition("2", []); -verify.goToDefinition("3", []); -verify.goToDefinition("4", ["functionDefinition"]); -verify.goToDefinition("5", []); -verify.goToDefinition("6", []); -verify.goToDefinition("7", ["classDefinition"]); +verify.baselineGoToDefinition( + "1", + "2", + "3", + "4", + "5", + "6", + "7", +); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts index fa67b5dbef5ba..d4f216436bbbb 100644 --- a/tests/cases/fourslash/goToDefinitionMethodOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionMethodOverloads.ts @@ -18,11 +18,11 @@ ////methodOverload.[|/*instanceMethodReference1*/method|](); ////methodOverload.[|/*instanceMethodReference2*/method|]("456"); -verify.goToDefinition({ - staticMethodReference1: "staticMethodOverload1", - staticMethodReference2: "staticMethodOverload2", - instanceMethodReference1: "instanceMethodOverload1", - instanceMethodReference2: "instanceMethodOverload2", - staticMethodOverload1: "staticMethodDefinition", - instanceMethodOverload1: "instanceMethodDefinition" -}); +verify.baselineGoToDefinition( + "staticMethodReference1", + "staticMethodReference2", + "instanceMethodReference1", + "instanceMethodReference2", + "staticMethodOverload1", + "instanceMethodOverload1" +); diff --git a/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts b/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts index 99b6d32e7f39b..2f117e413e0f7 100644 --- a/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts +++ b/tests/cases/fourslash/goToDefinitionMultipleDefinitions.ts @@ -16,8 +16,6 @@ //// ////var ifoo: [|IFo/*interfaceReference*/o|]; -verify.goToDefinition("interfaceReference", ["interfaceDefinition1", "interfaceDefinition2", "interfaceDefinition3"]); - // @Filename: c.ts ////module /*moduleDefinition1*/Module { //// export class c1 { } @@ -31,4 +29,7 @@ verify.goToDefinition("interfaceReference", ["interfaceDefinition1", "interfaceD // @Filename: e.ts ////[|Modul/*moduleReference*/e|]; -verify.goToDefinition("moduleReference", ["moduleDefinition1", "moduleDefinition2"]); +verify.baselineGoToDefinition( + "interfaceReference", + "moduleReference" +); diff --git a/tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts b/tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts index 5be7a4307f5cc..a4765708a9732 100644 --- a/tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts +++ b/tests/cases/fourslash/goToDefinitionNewExpressionTargetNotClass.ts @@ -10,7 +10,7 @@ ////}; ////new [|/*invokeExpression2*/I2|](); -verify.goToDefinition({ - invokeExpression1: ["I", "constructSignature"], - invokeExpression2: "symbolDeclaration" -}); +verify.baselineGoToDefinition( + "invokeExpression1", + "invokeExpression2", +); diff --git a/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts b/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts index 1bcae72797166..2d6819fe7bbed 100644 --- a/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts +++ b/tests/cases/fourslash/goToDefinitionObjectBindingElementPropertyName01.ts @@ -8,4 +8,4 @@ ////var foo: I; ////var { [|/*use*/property1|]: prop1 } = foo; -verify.goToDefinition("use", "def"); +verify.baselineGoToDefinition("use"); diff --git a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts index d430df3433d7a..e87ea0d5b3d51 100644 --- a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts +++ b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties.ts @@ -14,4 +14,4 @@ ////o./*methodReference*/method; ////o./*es6StyleMethodReference*/es6StyleMethod; -verify.goToDefinitionForMarkers("value", "getter", "setter", "method", "es6StyleMethod"); +verify.baselineGetDefinitionAtPosition("valueReference", "getterReference", "setterReference", "methodReference", "es6StyleMethodReference"); diff --git a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts index 0024682dc71d3..1a52252a7a86c 100644 --- a/tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts +++ b/tests/cases/fourslash/goToDefinitionObjectLiteralProperties1.ts @@ -13,7 +13,7 @@ //// }) -verify.goToDefinition({ - p1: "first", - p2: "first" -}); +verify.baselineGoToDefinition( + "p1", + "p2", +); diff --git a/tests/cases/fourslash/goToDefinitionObjectSpread.ts b/tests/cases/fourslash/goToDefinitionObjectSpread.ts index 918fa555f8649..e7f6ad3f45791 100644 --- a/tests/cases/fourslash/goToDefinitionObjectSpread.ts +++ b/tests/cases/fourslash/goToDefinitionObjectSpread.ts @@ -6,4 +6,4 @@ ////let a2: A2; ////let a12 = { ...a1, ...a2 }; ////a12.[|a/*3*/|]; -verify.goToDefinition('3', [ '1', '2' ]); +verify.baselineGoToDefinition('3'); diff --git a/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts b/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts index 9898b6dad1ec6..d3893e7f92ef8 100644 --- a/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts +++ b/tests/cases/fourslash/goToDefinitionOverloadsInMultiplePropertyAccesses.ts @@ -11,4 +11,4 @@ ////} ////A.B.[|/*2*/f|](""); -verify.goToDefinition("2", "1"); +verify.baselineGoToDefinition("2"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember1.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember1.ts index d645f40733e4a..ebe4f09e7626e 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember1.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember1.ts @@ -9,4 +9,4 @@ //// [|/*1*/override|] p = ''; ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember10.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember10.ts index 96a39c9469e81..a55994bb4c0d1 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember10.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember10.ts @@ -12,4 +12,4 @@ //// m() {} ////} -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember11.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember11.ts index ec028630b4c83..dee1ec69622eb 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember11.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember11.ts @@ -14,10 +14,10 @@ //// m() {} ////} -verify.goToDefinition({ - 1: "Foo_m", - 2: [], - 3: [], - 4: [], - 5: [] -}); +verify.baselineGoToDefinition( + "1", + "2", + "3", + "4", + "5", +); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember12.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember12.ts index b03ee57a22c3b..ace1b8f2087bf 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember12.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember12.ts @@ -9,4 +9,4 @@ //// static [|/*1*/override|] p = ''; ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember13.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember13.ts index c884ddab941b7..f53a7957f4627 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember13.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember13.ts @@ -9,4 +9,4 @@ //// static [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember14.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember14.ts index 7f406d2bddec6..982030d72b437 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember14.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember14.ts @@ -10,4 +10,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember15.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember15.ts index 0f1341a2fa1eb..b8cb4a756be80 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember15.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember15.ts @@ -10,4 +10,4 @@ //// static [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember16.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember16.ts index 96f1467a344c6..bc4fe26f9353e 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember16.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember16.ts @@ -13,4 +13,4 @@ //// } //// } -verify.goToDefinition(['1'], []) +verify.baselineGoToDefinition('1') diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember2.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember2.ts index 47d7ea695dacf..3a4b3a6d23801 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember2.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember2.ts @@ -10,4 +10,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember3.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember3.ts index a952f9e2ce80f..02905619b7e18 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember3.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember3.ts @@ -10,4 +10,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember4.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember4.ts index 1309614186c66..734f12031437b 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember4.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember4.ts @@ -11,5 +11,5 @@ //// } ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember5.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember5.ts index 56fd2346b61e7..95648e6eb9223 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember5.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember5.ts @@ -8,4 +8,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember6.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember6.ts index 7b0456962cb37..769fe34cdcb1e 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember6.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember6.ts @@ -9,4 +9,4 @@ //// [|/*1*/override|] m1() {} ////} -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember7.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember7.ts index b45271e4960bb..f92c70887415a 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember7.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember7.ts @@ -6,4 +6,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember8.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember8.ts index 0154aca9b569b..95e409a37bd35 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember8.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember8.ts @@ -13,4 +13,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionOverriddenMember9.ts b/tests/cases/fourslash/goToDefinitionOverriddenMember9.ts index 705b1d771a577..358c28c3c1bf4 100644 --- a/tests/cases/fourslash/goToDefinitionOverriddenMember9.ts +++ b/tests/cases/fourslash/goToDefinitionOverriddenMember9.ts @@ -12,4 +12,4 @@ //// [|/*1*/override|] m() {} ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionPartialImplementation.ts b/tests/cases/fourslash/goToDefinitionPartialImplementation.ts index 00cf6fd181966..a8249a2ea581b 100644 --- a/tests/cases/fourslash/goToDefinitionPartialImplementation.ts +++ b/tests/cases/fourslash/goToDefinitionPartialImplementation.ts @@ -16,4 +16,4 @@ //// var x: [|/*Part2Use*/IA|]; ////} -verify.goToDefinition("Part2Use", ["Part1Definition", "Part2Definition"]); +verify.baselineGoToDefinition("Part2Use"); diff --git a/tests/cases/fourslash/goToDefinitionPrimitives.ts b/tests/cases/fourslash/goToDefinitionPrimitives.ts index c0bf24835943f..ec6bb4c6a8a7a 100644 --- a/tests/cases/fourslash/goToDefinitionPrimitives.ts +++ b/tests/cases/fourslash/goToDefinitionPrimitives.ts @@ -2,4 +2,4 @@ ////var x: st/*primitive*/ring; -verify.goToDefinition("primitive", []); +verify.baselineGoToDefinition("primitive"); diff --git a/tests/cases/fourslash/goToDefinitionPrivateName.ts b/tests/cases/fourslash/goToDefinitionPrivateName.ts index 6a551819569c5..37a2ac774785e 100644 --- a/tests/cases/fourslash/goToDefinitionPrivateName.ts +++ b/tests/cases/fourslash/goToDefinitionPrivateName.ts @@ -12,8 +12,8 @@ //// } //// } -verify.goToDefinition({ - pnFieldUse: "pnFieldDecl", - pnMethodUse: "pnMethodDecl", - pnPropUse: ["pnPropGetDecl", "pnPropSetDecl"] -}); +verify.baselineGoToDefinition( + "pnFieldUse", + "pnMethodUse", + "pnPropUse", +); diff --git a/tests/cases/fourslash/goToDefinitionPropertyAssignment.ts b/tests/cases/fourslash/goToDefinitionPropertyAssignment.ts index aec6e28fdf186..29181b775ebf9 100644 --- a/tests/cases/fourslash/goToDefinitionPropertyAssignment.ts +++ b/tests/cases/fourslash/goToDefinitionPropertyAssignment.ts @@ -7,5 +7,7 @@ //// //// Component.[|/*PropertyClick*/displayName|] -verify.goToDefinition("FunctionClick", "FunctionResult") -verify.goToDefinition("PropertyClick", "PropertyResult") +verify.baselineGoToDefinition( + "FunctionClick", + "PropertyClick", +); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionRest.ts b/tests/cases/fourslash/goToDefinitionRest.ts index 4f1aa23c2ad8e..a7d003c8e7db9 100644 --- a/tests/cases/fourslash/goToDefinitionRest.ts +++ b/tests/cases/fourslash/goToDefinitionRest.ts @@ -9,4 +9,4 @@ ////var { x, ...rest } = t; ////rest.[|/*2*/parent|]; -verify.goToDefinition('2', [ '1' ]); +verify.baselineGoToDefinition('2'); diff --git a/tests/cases/fourslash/goToDefinitionReturn1.ts b/tests/cases/fourslash/goToDefinitionReturn1.ts index 6c8c1550c3167..ce0b369c29ebe 100644 --- a/tests/cases/fourslash/goToDefinitionReturn1.ts +++ b/tests/cases/fourslash/goToDefinitionReturn1.ts @@ -4,4 +4,4 @@ //// [|/*start*/return|] 10; ////} -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn2.ts b/tests/cases/fourslash/goToDefinitionReturn2.ts index a101880397aef..2044ca2671dac 100644 --- a/tests/cases/fourslash/goToDefinitionReturn2.ts +++ b/tests/cases/fourslash/goToDefinitionReturn2.ts @@ -6,4 +6,4 @@ //// } ////} -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn3.ts b/tests/cases/fourslash/goToDefinitionReturn3.ts index e3f1f952fa2fb..d0306413c93fe 100644 --- a/tests/cases/fourslash/goToDefinitionReturn3.ts +++ b/tests/cases/fourslash/goToDefinitionReturn3.ts @@ -6,4 +6,4 @@ //// } ////} -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn4.ts b/tests/cases/fourslash/goToDefinitionReturn4.ts index d86f8227e8d15..b284c6b2faa35 100644 --- a/tests/cases/fourslash/goToDefinitionReturn4.ts +++ b/tests/cases/fourslash/goToDefinitionReturn4.ts @@ -2,4 +2,4 @@ ////[|/*start*/return|]; -verify.goToDefinition("start", []); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn5.ts b/tests/cases/fourslash/goToDefinitionReturn5.ts index 12dd4302063c0..7c1a7b6146d3b 100644 --- a/tests/cases/fourslash/goToDefinitionReturn5.ts +++ b/tests/cases/fourslash/goToDefinitionReturn5.ts @@ -6,4 +6,4 @@ //// } ////} -verify.goToDefinition("start", []); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn6.ts b/tests/cases/fourslash/goToDefinitionReturn6.ts index 500e2043fdf03..c591cc8274f45 100644 --- a/tests/cases/fourslash/goToDefinitionReturn6.ts +++ b/tests/cases/fourslash/goToDefinitionReturn6.ts @@ -6,4 +6,4 @@ //// } ////} -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionReturn7.ts b/tests/cases/fourslash/goToDefinitionReturn7.ts index b2a2c70b5c98f..61658e79c89d5 100644 --- a/tests/cases/fourslash/goToDefinitionReturn7.ts +++ b/tests/cases/fourslash/goToDefinitionReturn7.ts @@ -6,4 +6,4 @@ //// [|/*start*/return|] a + b; ////} -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionSameFile.ts b/tests/cases/fourslash/goToDefinitionSameFile.ts index e9b8b211bf718..254632975b3c6 100644 --- a/tests/cases/fourslash/goToDefinitionSameFile.ts +++ b/tests/cases/fourslash/goToDefinitionSameFile.ts @@ -13,4 +13,4 @@ ////class fooCls implements /*localInterfaceReference*/localInterface { } ////var fooVar = /*localModuleReference*/localModule.foo; -verify.goToDefinitionForMarkers("localVariable", "localFunction", "localClass", "localInterface", "localModule"); +verify.baselineGetDefinitionAtPosition("localVariableReference", "localFunctionReference", "localClassReference", "localInterfaceReference", "localModuleReference"); diff --git a/tests/cases/fourslash/goToDefinitionScriptImport.ts b/tests/cases/fourslash/goToDefinitionScriptImport.ts index 5cede98c02a99..5c99e154b2993 100644 --- a/tests/cases/fourslash/goToDefinitionScriptImport.ts +++ b/tests/cases/fourslash/goToDefinitionScriptImport.ts @@ -16,5 +16,4 @@ // not JS/TS, but if we can, you should be able to jump to it. //// import [|/*2*/"./stylez.css"|]; -verify.goToDefinition("1", { marker: "1d", unverified: true }); -verify.goToDefinition("2", { marker: "2d", unverified: true }); +verify.baselineGoToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionShadowVariable.ts b/tests/cases/fourslash/goToDefinitionShadowVariable.ts index 0a30228790baf..75b38f467369b 100644 --- a/tests/cases/fourslash/goToDefinitionShadowVariable.ts +++ b/tests/cases/fourslash/goToDefinitionShadowVariable.ts @@ -6,4 +6,4 @@ //// /*shadowVariableReference*/shadowVariable = 1; ////} -verify.goToDefinitionForMarkers("shadowVariable"); +verify.baselineGetDefinitionAtPosition("shadowVariableReference"); diff --git a/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts b/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts index 953b8ea47fe33..56f5be4eef282 100644 --- a/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts +++ b/tests/cases/fourslash/goToDefinitionShadowVariableInsideModule.ts @@ -5,4 +5,4 @@ //// /*shadowVariableReference*/shdVar = 1; ////} -verify.goToDefinitionForMarkers("shadowVariable"); +verify.baselineGetDefinitionAtPosition("shadowVariableReference"); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts index 7e46894d244cd..677549382e80b 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty01.ts @@ -7,9 +7,9 @@ //// obj.[|/*valueReference1*/name|]; //// obj.[|/*valueReference2*/id|]; -verify.goToDefinition({ - valueDefinition1: "valueDeclaration1", - valueDefinition2: ["valueDeclaration2", "valueDeclaration3"], - valueReference1: "valueDefinition1", - valueReference2: "valueDefinition2" -}); +verify.baselineGoToDefinition( + "valueDefinition1", + "valueDefinition2", + "valueReference1", + "valueReference2", +); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts index 1d78ade426771..5097f46582d49 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty02.ts @@ -4,4 +4,4 @@ //// [|f/*1*/oo|] ////} -verify.goToDefinition("1", []); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts index 3a04d3efa0630..38246d45106c4 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty03.ts @@ -7,7 +7,7 @@ //// [|/*letProp*/y|] ////} -verify.goToDefinition({ - varProp: "varDef", - letProp: "letDef" -}); +verify.baselineGoToDefinition( + "varProp", + "letProp", +); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty04.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty04.ts index 4f24a9aef76cb..4ada55417fea0 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty04.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty04.ts @@ -8,4 +8,4 @@ //// [|f/*1*/oo|] ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty05.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty05.ts index d00036ca381ba..09396df8079df 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty05.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty05.ts @@ -8,4 +8,4 @@ //// [|f/*1*/oo|] ////} -verify.goToDefinition("1", ["2", "3"]); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionShorthandProperty06.ts b/tests/cases/fourslash/goToDefinitionShorthandProperty06.ts index 8fe36acdff7b2..b00665f5a5a02 100644 --- a/tests/cases/fourslash/goToDefinitionShorthandProperty06.ts +++ b/tests/cases/fourslash/goToDefinitionShorthandProperty06.ts @@ -8,4 +8,4 @@ //// [|f/*1*/oo|]() ////} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionSignatureAlias.ts b/tests/cases/fourslash/goToDefinitionSignatureAlias.ts index 925be86b052bb..fea95d9bd0f88 100644 --- a/tests/cases/fourslash/goToDefinitionSignatureAlias.ts +++ b/tests/cases/fourslash/goToDefinitionSignatureAlias.ts @@ -42,23 +42,23 @@ verify.noErrors(); -verify.goToDefinition({ - useF: "f", - useG: ["g", "f"], - useH: ["h", "f"], +verify.baselineGoToDefinition( + "useF", + "useG", + "useH", - useI: "i", - useIFn: "iFn", - useJ: ["j", "i"], - useM: "m", - useMFn: "mFn", + "useI", + "useIFn", + "useJ", + "useM", + "useMFn", - jsxMyComponent: "MyComponent", - newMyComponent: ["MyComponent", "componentCtr"], + "jsxMyComponent", + "newMyComponent", - jsxMyComponent2: "MyComponent2", - newMyComponent2: ["MyComponent2", "ComponentClass"], + "jsxMyComponent2", + "newMyComponent2", - jsxMyComponent3: "MyComponent3", - newMyComponent3: ["MyComponent3", "ComponentClass2"], -}); + "jsxMyComponent3", + "newMyComponent3", +); diff --git a/tests/cases/fourslash/goToDefinitionSignatureAlias_require.ts b/tests/cases/fourslash/goToDefinitionSignatureAlias_require.ts index b104c0a50e5ee..1da06d3b4b4b4 100644 --- a/tests/cases/fourslash/goToDefinitionSignatureAlias_require.ts +++ b/tests/cases/fourslash/goToDefinitionSignatureAlias_require.ts @@ -13,4 +13,4 @@ ////import f = require("./a"); ////[|/*useTs*/f|](); -verify.goToDefinition(["use", "useTs"], "f"); +verify.baselineGoToDefinition("use", "useTs"); diff --git a/tests/cases/fourslash/goToDefinitionSimple.ts b/tests/cases/fourslash/goToDefinitionSimple.ts index 3d1cdd632ba28..932f1e75ca488 100644 --- a/tests/cases/fourslash/goToDefinitionSimple.ts +++ b/tests/cases/fourslash/goToDefinitionSimple.ts @@ -7,4 +7,4 @@ //// var n = new [|/*1*/c|](); //// var n = new [|c/*3*/|](); -verify.goToDefinition(["1", "3"], "2"); +verify.baselineGoToDefinition("1", "3"); diff --git a/tests/cases/fourslash/goToDefinitionSourceUnit.ts b/tests/cases/fourslash/goToDefinitionSourceUnit.ts index d823b366eee6b..b2fab29da35c1 100644 --- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts +++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts @@ -16,7 +16,7 @@ // @Filename: b.ts /////*fileB*/ -verify.goToDefinition({ - unknownFile: [], - knownFile: "fileB" -}); +verify.baselineGoToDefinition( + "unknownFile", + "knownFile", +); diff --git a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts index fcb28f86d0572..43ca7bacf8002 100644 --- a/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts +++ b/tests/cases/fourslash/goToDefinitionTaggedTemplateOverloads.ts @@ -7,7 +7,7 @@ ////[|/*useFNumber*/f|]`${0}`; ////[|/*useFBool*/f|]`${false}`; -verify.goToDefinition({ - useFNumber: "defFNumber", - useFBool: "defFBool" -}); +verify.baselineGoToDefinition( + "useFNumber", + "useFBool" +); diff --git a/tests/cases/fourslash/goToDefinitionThis.ts b/tests/cases/fourslash/goToDefinitionThis.ts index 88cbcb8ca9631..8b1c874524c64 100644 --- a/tests/cases/fourslash/goToDefinitionThis.ts +++ b/tests/cases/fourslash/goToDefinitionThis.ts @@ -8,8 +8,8 @@ //// get self(/*getterDecl*/this: number) { return [|/*getterUse*/this|]; } ////} -verify.goToDefinition({ - "fnUse": "fnDecl", - "clsUse": "cls", - "getterUse": "getterDecl" -}); +verify.baselineGoToDefinition( + "fnUse", + "clsUse", + "getterUse", +); diff --git a/tests/cases/fourslash/goToDefinitionTypeOnlyImport.ts b/tests/cases/fourslash/goToDefinitionTypeOnlyImport.ts index f7a9da33d9b67..28a10a345c5b5 100644 --- a/tests/cases/fourslash/goToDefinitionTypeOnlyImport.ts +++ b/tests/cases/fourslash/goToDefinitionTypeOnlyImport.ts @@ -12,4 +12,4 @@ ////let kind: [|/*2*/SyntaxKind|]; -verify.goToDefinition("2", "1"); +verify.baselineGoToDefinition("2"); diff --git a/tests/cases/fourslash/goToDefinitionTypePredicate.ts b/tests/cases/fourslash/goToDefinitionTypePredicate.ts index 9988611885c67..6d675ced2d3b7 100644 --- a/tests/cases/fourslash/goToDefinitionTypePredicate.ts +++ b/tests/cases/fourslash/goToDefinitionTypePredicate.ts @@ -5,7 +5,7 @@ //// return typeof parameter === "string"; //// } -verify.goToDefinition({ - parameterName: "parameterDeclaration", - typeReference: "classDeclaration" -}); +verify.baselineGoToDefinition( + "parameterName", + "typeReference", +); diff --git a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts index 532390fb35e7d..0dc7fadca979d 100644 --- a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts @@ -8,4 +8,4 @@ //// /// //// $.x; -verify.goToDefinition("1", "0"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToDefinitionTypeofThis.ts b/tests/cases/fourslash/goToDefinitionTypeofThis.ts index 72b9a63f04535..3c788e422d607 100644 --- a/tests/cases/fourslash/goToDefinitionTypeofThis.ts +++ b/tests/cases/fourslash/goToDefinitionTypeofThis.ts @@ -8,8 +8,8 @@ //// get self(/*getterDecl*/this: number) { type X = typeof [|/*getterUse*/this|]; } ////} -verify.goToDefinition({ - "fnUse": "fnDecl", - "clsUse": "cls", - "getterUse": "getterDecl" -}); +verify.baselineGoToDefinition( + "fnUse", + "clsUse", + "getterUse", +); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts b/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts index ceb1dc6d5be10..69726f8b0f0e7 100644 --- a/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts +++ b/tests/cases/fourslash/goToDefinitionUndefinedSymbols.ts @@ -5,6 +5,4 @@ ////var x = {}; x.some/*undefinedProperty*/Property; ////var a: any; a.some/*unkownProperty*/Property; -for (const marker of test.markerNames()) { - verify.goToDefinition(marker, []); -} +verify.baselineGoToDefinition(...test.markerNames()); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts index 6baca39e01181..20ddc23440c2b 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty1.ts @@ -15,4 +15,4 @@ ////x.[|/*propertyReference*/commonProperty|]; ////x./*3*/commonFunction; -verify.goToDefinition("propertyReference", ["propertyDefinition1", "propertyDefinition2"]); +verify.baselineGoToDefinition("propertyReference"); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts index 3ade25ca62267..791e610f9140a 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty2.ts @@ -16,4 +16,4 @@ //// ////x.common.[|/*propertyReference*/a|]; -verify.goToDefinition("propertyReference", ["propertyDefinition2", "propertyDefinition1"]); +verify.baselineGoToDefinition("propertyReference"); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts index 3f5666f19b884..2702e40cc3e74 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty3.ts @@ -9,4 +9,4 @@ //// ////var x = (strings || numbers).[|/*usage*/specialPop|]() -verify.goToDefinition("usage", "definition"); +verify.baselineGoToDefinition("usage"); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts index a4c5996159265..b7883d22781d7 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty4.ts @@ -18,4 +18,4 @@ //// ////var x = (snapcrackle || magnitude || art).[|/*usage*/pop|]; -verify.goToDefinition("usage", ["def1", "def2", "def3"]); +verify.baselineGoToDefinition("usage"); diff --git a/tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts b/tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts index 535c22c89307b..b61a5a3f7eecc 100644 --- a/tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts +++ b/tests/cases/fourslash/goToDefinitionUnionTypeProperty_discriminated.ts @@ -21,9 +21,9 @@ //// [|/*propBogus*/prop|]: 0, ////}; -verify.goToDefinition({ - kind: "aKind", - prop: "aProp", - kindBogus: ["aKind", "bKind"], - propBogus: ["aProp", "bProp"], -}); +verify.baselineGoToDefinition( + "kind", + "prop", + "kindBogus", + "propBogus", +); diff --git a/tests/cases/fourslash/goToDefinitionVariableAssignment.ts b/tests/cases/fourslash/goToDefinitionVariableAssignment.ts index 3b0c14655e798..61eb8873ba0e0 100644 --- a/tests/cases/fourslash/goToDefinitionVariableAssignment.ts +++ b/tests/cases/fourslash/goToDefinitionVariableAssignment.ts @@ -9,4 +9,4 @@ ////new [|Foo/*ref*/|](); goTo.file("foo.js"); -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinitionVariableAssignment1.ts b/tests/cases/fourslash/goToDefinitionVariableAssignment1.ts index cce4afa072a9c..9a7924a0fe16f 100644 --- a/tests/cases/fourslash/goToDefinitionVariableAssignment1.ts +++ b/tests/cases/fourslash/goToDefinitionVariableAssignment1.ts @@ -8,4 +8,4 @@ ////new [|Foo/*ref*/|](); goTo.file("foo.js"); -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinitionVariableAssignment2.ts b/tests/cases/fourslash/goToDefinitionVariableAssignment2.ts index a23c121a340cf..b9c346cc2ea4d 100644 --- a/tests/cases/fourslash/goToDefinitionVariableAssignment2.ts +++ b/tests/cases/fourslash/goToDefinitionVariableAssignment2.ts @@ -7,4 +7,4 @@ ////new [|Foo/*ref*/|](); goTo.file("foo.ts"); -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinitionVariableAssignment3.ts b/tests/cases/fourslash/goToDefinitionVariableAssignment3.ts index e1ac6b9c8eecf..a1599492f3b9d 100644 --- a/tests/cases/fourslash/goToDefinitionVariableAssignment3.ts +++ b/tests/cases/fourslash/goToDefinitionVariableAssignment3.ts @@ -6,4 +6,4 @@ ////new [|Foo/*ref*/|](); goTo.file("foo.ts"); -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinitionYield1.ts b/tests/cases/fourslash/goToDefinitionYield1.ts index c2e781b31ef81..c72c820ca1f4c 100644 --- a/tests/cases/fourslash/goToDefinitionYield1.ts +++ b/tests/cases/fourslash/goToDefinitionYield1.ts @@ -8,5 +8,7 @@ //// [|/*start2*/yield|] 0; //// } -verify.goToDefinition("start1", "end1"); -verify.goToDefinition("start2", "end2"); +verify.baselineGoToDefinition( + "start1", + "start2", +); diff --git a/tests/cases/fourslash/goToDefinitionYield2.ts b/tests/cases/fourslash/goToDefinitionYield2.ts index c8bf3d596316e..e3895d116bb4e 100644 --- a/tests/cases/fourslash/goToDefinitionYield2.ts +++ b/tests/cases/fourslash/goToDefinitionYield2.ts @@ -7,4 +7,4 @@ //// return gen //// } -verify.goToDefinition("start", "end"); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinitionYield3.ts b/tests/cases/fourslash/goToDefinitionYield3.ts index 06eaa111e0ccd..9bb96352d3d5b 100644 --- a/tests/cases/fourslash/goToDefinitionYield3.ts +++ b/tests/cases/fourslash/goToDefinitionYield3.ts @@ -10,5 +10,7 @@ //// } //// } -verify.goToDefinition("start1", []); -verify.goToDefinition("start2", "end2"); +verify.baselineGoToDefinition( + "start1", + "start2", +); diff --git a/tests/cases/fourslash/goToDefinitionYield4.ts b/tests/cases/fourslash/goToDefinitionYield4.ts index 0de3aa30247f9..07b7211d81f38 100644 --- a/tests/cases/fourslash/goToDefinitionYield4.ts +++ b/tests/cases/fourslash/goToDefinitionYield4.ts @@ -4,4 +4,4 @@ //// class C { [/*start*/yield 10]() {} } //// } -verify.goToDefinition("start", []); +verify.baselineGoToDefinition("start"); diff --git a/tests/cases/fourslash/goToDefinition_filteringGenericMappedType.ts b/tests/cases/fourslash/goToDefinition_filteringGenericMappedType.ts index 95a8ec67ced4c..bfa641548cbd2 100644 --- a/tests/cases/fourslash/goToDefinition_filteringGenericMappedType.ts +++ b/tests/cases/fourslash/goToDefinition_filteringGenericMappedType.ts @@ -22,4 +22,4 @@ //// //// obj2.[|/*ref*/id|]; -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinition_filteringMappedType.ts b/tests/cases/fourslash/goToDefinition_filteringMappedType.ts index 56ffe4130d3cd..82f322adb6539 100644 --- a/tests/cases/fourslash/goToDefinition_filteringMappedType.ts +++ b/tests/cases/fourslash/goToDefinition_filteringMappedType.ts @@ -4,4 +4,4 @@ ////const filtered: { [P in keyof typeof obj as P extends 'b' ? never : P]: 0; } = { a: 0 }; ////filtered.[|/*ref*/a|]; -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinition_mappedType.ts b/tests/cases/fourslash/goToDefinition_mappedType.ts index 45bd3b91a5e64..2f982290fec7a 100644 --- a/tests/cases/fourslash/goToDefinition_mappedType.ts +++ b/tests/cases/fourslash/goToDefinition_mappedType.ts @@ -4,4 +4,4 @@ ////declare const i: { [K in "m"]: I[K] }; ////i.[|/*ref*/m|](); -verify.goToDefinition("ref", "def"); +verify.baselineGoToDefinition("ref"); diff --git a/tests/cases/fourslash/goToDefinition_super.ts b/tests/cases/fourslash/goToDefinition_super.ts index edc7a40c37650..1a022249a5fc0 100644 --- a/tests/cases/fourslash/goToDefinition_super.ts +++ b/tests/cases/fourslash/goToDefinition_super.ts @@ -20,10 +20,10 @@ ////} -verify.goToDefinition({ +verify.baselineGoToDefinition( // Super in call position goes to constructor. - super: ["ctr", "B"], + "super", // Super in any other position goes to the superclass. - superExpression: "B", - superBroken: [] -}); + "superExpression", + "superBroken", +); diff --git a/tests/cases/fourslash/goToDefinition_untypedModule.ts b/tests/cases/fourslash/goToDefinition_untypedModule.ts index 8c9e83711a931..9f3fa1d9dbc99 100644 --- a/tests/cases/fourslash/goToDefinition_untypedModule.ts +++ b/tests/cases/fourslash/goToDefinition_untypedModule.ts @@ -7,4 +7,4 @@ ////import { /*def*/f } from "foo"; ////[|/*use*/f|](); -verify.goToDefinition("use", "def"); +verify.baselineGoToDefinition("use"); diff --git a/tests/cases/fourslash/goToImplementationClassMethod_00.ts b/tests/cases/fourslash/goToImplementationClassMethod_00.ts index 8c8ad0723eeac..5b3225004e3be 100644 --- a/tests/cases/fourslash/goToImplementationClassMethod_00.ts +++ b/tests/cases/fourslash/goToImplementationClassMethod_00.ts @@ -8,4 +8,4 @@ //// //// new Bar().hel/*reference*/lo; -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationClassMethod_01.ts b/tests/cases/fourslash/goToImplementationClassMethod_01.ts index 5aa9deace63cb..bbdc005f36cae 100644 --- a/tests/cases/fourslash/goToImplementationClassMethod_01.ts +++ b/tests/cases/fourslash/goToImplementationClassMethod_01.ts @@ -14,5 +14,4 @@ //// x.he/*reference*/llo(); //// } -verify.allRangesAppearInImplementationList("reference"); -verify.allRangesAppearInImplementationList("declaration"); \ No newline at end of file +verify.baselineGoToImplementation("reference", "declaration"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationEnum_00.ts b/tests/cases/fourslash/goToImplementationEnum_00.ts index ee5750ed04d8b..ca4876cbbac56 100644 --- a/tests/cases/fourslash/goToImplementationEnum_00.ts +++ b/tests/cases/fourslash/goToImplementationEnum_00.ts @@ -9,4 +9,4 @@ //// //// Foo.Fo/*reference*/o1; -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationEnum_01.ts b/tests/cases/fourslash/goToImplementationEnum_01.ts index cf21420609bb6..c65c7fd4e811b 100644 --- a/tests/cases/fourslash/goToImplementationEnum_01.ts +++ b/tests/cases/fourslash/goToImplementationEnum_01.ts @@ -9,4 +9,4 @@ //// //// Fo/*reference*/o; -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts index 0a50197d7adcc..10eb152c8ee22 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_00.ts @@ -21,5 +21,4 @@ //// constructor(public f: Foo = { [|hello|]() {/**3*/} } ) {} //// } -verify.allRangesAppearInImplementationList("function_call"); -verify.allRangesAppearInImplementationList("declaration"); +verify.baselineGoToImplementation("function_call", "declaration"); diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts index d7626b3bf741c..e68f88ec0e638 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_01.ts @@ -18,5 +18,4 @@ //// //// whatever(new Bar()); -verify.allRangesAppearInImplementationList("function_call"); -verify.allRangesAppearInImplementationList("declaration"); \ No newline at end of file +verify.baselineGoToImplementation("function_call", "declaration"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts index d672f1c8f4811..1d982615abc5f 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_02.ts @@ -18,5 +18,4 @@ //// a.he/*function_call*/llo(); //// } -verify.allRangesAppearInImplementationList("function_call"); -verify.allRangesAppearInImplementationList("declaration"); \ No newline at end of file +verify.baselineGoToImplementation("function_call", "declaration"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_03.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_03.ts index 3753fe4e35134..f4d18d29ec3c2 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_03.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_03.ts @@ -21,4 +21,4 @@ //// new Bar().hel/*function_call*/lo(); //// new Bar()["hello"](); -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_04.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_04.ts index a4c832b43aeb0..e502144a1c8cc 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_04.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_04.ts @@ -22,4 +22,4 @@ //// x.he/*function_call*/llo() //// } -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_05.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_05.ts index c8cc432c161ed..cd52bb8be9c20 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_05.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_05.ts @@ -34,4 +34,4 @@ //// x.he/*function_call*/llo() //// } -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_06.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_06.ts index ac39ed709289d..7dc1b3a726761 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_06.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_06.ts @@ -45,4 +45,4 @@ //// x.he/*function_call*/llo() //// } -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_08.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_08.ts index ed1a4b34f50a9..4982aa6949b0a 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_08.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_08.ts @@ -19,4 +19,4 @@ //// } -verify.allRangesAppearInImplementationList("function_call"); +verify.baselineGoToImplementation("function_call"); diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts index b507be3fe2b7e..dd87d87f77aa3 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_09.ts @@ -27,5 +27,4 @@ //// hello() {} //// } -verify.allRangesAppearInImplementationList("function_call"); -verify.allRangesAppearInImplementationList("element_access"); +verify.baselineGoToImplementation("function_call", "element_access"); diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts index ebc0f0e713a12..2776e0e5c3e41 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_10.ts @@ -43,6 +43,4 @@ //// x.he/*function_call1*/llo(); //// } -for (var i = 0; i < 2; i++) { - verify.allRangesAppearInImplementationList("function_call" + i); -} +verify.baselineGoToImplementation("function_call0", "function_call1"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceMethod_11.ts b/tests/cases/fourslash/goToImplementationInterfaceMethod_11.ts index 07f06a6d76dd5..3a5cee16725e8 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceMethod_11.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceMethod_11.ts @@ -9,4 +9,4 @@ //// var x = { [|hello|]: () => {} }; //// var y = (((({ [|hello|]: () => {} })))); -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceProperty_00.ts b/tests/cases/fourslash/goToImplementationInterfaceProperty_00.ts index 547d14d493e0f..ec60ba882de55 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceProperty_00.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceProperty_00.ts @@ -19,4 +19,4 @@ //// constructor(public f: Foo = { [|hello|]: 7 } ) {} //// } -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterfaceProperty_01.ts b/tests/cases/fourslash/goToImplementationInterfaceProperty_01.ts index 46cb696d3de25..e89039b008744 100644 --- a/tests/cases/fourslash/goToImplementationInterfaceProperty_01.ts +++ b/tests/cases/fourslash/goToImplementationInterfaceProperty_01.ts @@ -12,4 +12,4 @@ //// foo.he/*reference*/llo; //// } -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_00.ts b/tests/cases/fourslash/goToImplementationInterface_00.ts index 33ff9fbd045d2..1814854c2f605 100644 --- a/tests/cases/fourslash/goToImplementationInterface_00.ts +++ b/tests/cases/fourslash/goToImplementationInterface_00.ts @@ -22,4 +22,4 @@ //// constructor(public f: Foo = [|{ hello() {/**3*/} }|] ) {} //// } -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_01.ts b/tests/cases/fourslash/goToImplementationInterface_01.ts index a797fca37bcaf..68f20a0e92a54 100644 --- a/tests/cases/fourslash/goToImplementationInterface_01.ts +++ b/tests/cases/fourslash/goToImplementationInterface_01.ts @@ -21,4 +21,4 @@ //// var y: SuperBar = new SuperBar(); //// var z: AbstractBar = new NotAbstractBar(); -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_02.ts b/tests/cases/fourslash/goToImplementationInterface_02.ts index 27f29465a9a2c..a895e961ac10f 100644 --- a/tests/cases/fourslash/goToImplementationInterface_02.ts +++ b/tests/cases/fourslash/goToImplementationInterface_02.ts @@ -25,4 +25,4 @@ //// }; //// } -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_03.ts b/tests/cases/fourslash/goToImplementationInterface_03.ts index 1c63852dafcad..d057fdc5e13ba 100644 --- a/tests/cases/fourslash/goToImplementationInterface_03.ts +++ b/tests/cases/fourslash/goToImplementationInterface_03.ts @@ -6,4 +6,4 @@ //// //// var x = [|{ hello: () => {} }|]; -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_04.ts b/tests/cases/fourslash/goToImplementationInterface_04.ts index febc511388d44..d88300643172d 100644 --- a/tests/cases/fourslash/goToImplementationInterface_04.ts +++ b/tests/cases/fourslash/goToImplementationInterface_04.ts @@ -17,4 +17,4 @@ //// constructor(public f: Foo = [|function(a) {}|] ) {} //// } -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_05.ts b/tests/cases/fourslash/goToImplementationInterface_05.ts index 3b31b89b52852..ad1c77fcad07f 100644 --- a/tests/cases/fourslash/goToImplementationInterface_05.ts +++ b/tests/cases/fourslash/goToImplementationInterface_05.ts @@ -9,4 +9,4 @@ //// let bar2 = [|function(a) {}|]; //// -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_06.ts b/tests/cases/fourslash/goToImplementationInterface_06.ts index 15f521328685d..9d812a46b912c 100644 --- a/tests/cases/fourslash/goToImplementationInterface_06.ts +++ b/tests/cases/fourslash/goToImplementationInterface_06.ts @@ -11,4 +11,4 @@ //// let x: Foo = [|class { constructor (a: number) {} }|]; //// let y = [|class { constructor (a: number) {} }|]; -verify.allRangesAppearInImplementationList("interface_definition"); \ No newline at end of file +verify.baselineGoToImplementation("interface_definition"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_07.ts b/tests/cases/fourslash/goToImplementationInterface_07.ts index 3ebf76d1e3e25..5bf1d29f6a74d 100644 --- a/tests/cases/fourslash/goToImplementationInterface_07.ts +++ b/tests/cases/fourslash/goToImplementationInterface_07.ts @@ -27,4 +27,4 @@ //// return true; //// } -verify.allRangesAppearInImplementationList("interface_definition"); +verify.baselineGoToImplementation("interface_definition"); diff --git a/tests/cases/fourslash/goToImplementationInterface_08.ts b/tests/cases/fourslash/goToImplementationInterface_08.ts index 470776c737b19..665e436948e9f 100644 --- a/tests/cases/fourslash/goToImplementationInterface_08.ts +++ b/tests/cases/fourslash/goToImplementationInterface_08.ts @@ -18,4 +18,4 @@ //// d.he/*function_call*/llo(); //// } -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInterface_09.ts b/tests/cases/fourslash/goToImplementationInterface_09.ts index 5706dea5bb66f..c51b64e06a014 100644 --- a/tests/cases/fourslash/goToImplementationInterface_09.ts +++ b/tests/cases/fourslash/goToImplementationInterface_09.ts @@ -9,4 +9,4 @@ //// import { Interface } from "./def"; //// const c: I/*ref*/nterface = [|{ P: 2 }|]; -verify.allRangesAppearInImplementationList("ref"); \ No newline at end of file +verify.baselineGoToImplementation("ref"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationInvalid.ts b/tests/cases/fourslash/goToImplementationInvalid.ts index 52b2773342e1f..1454e7106a7eb 100644 --- a/tests/cases/fourslash/goToImplementationInvalid.ts +++ b/tests/cases/fourslash/goToImplementationInvalid.ts @@ -6,7 +6,4 @@ //// var x2 = "hel/*1*/lo"; //// /*2*/ -for(var i = 0; i < 3; i++) { - goTo.marker("" + i); - verify.implementationListIsEmpty(); -} \ No newline at end of file +verify.baselineGoToImplementation("0", "1", "2"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationLocal_00.ts b/tests/cases/fourslash/goToImplementationLocal_00.ts index f5e01b89cee2c..dd2356a23a43e 100644 --- a/tests/cases/fourslash/goToImplementationLocal_00.ts +++ b/tests/cases/fourslash/goToImplementationLocal_00.ts @@ -5,4 +5,4 @@ //// he/*function_call*/llo(); //// function [|hello|]() {} -verify.allRangesAppearInImplementationList("function_call"); +verify.baselineGoToImplementation("function_call"); diff --git a/tests/cases/fourslash/goToImplementationLocal_01.ts b/tests/cases/fourslash/goToImplementationLocal_01.ts index fe83db9b887e3..e1d01107d7681 100644 --- a/tests/cases/fourslash/goToImplementationLocal_01.ts +++ b/tests/cases/fourslash/goToImplementationLocal_01.ts @@ -5,4 +5,4 @@ //// const [|hello|] = function() {}; //// he/*function_call*/llo(); -verify.allRangesAppearInImplementationList("function_call"); +verify.baselineGoToImplementation("function_call"); diff --git a/tests/cases/fourslash/goToImplementationLocal_02.ts b/tests/cases/fourslash/goToImplementationLocal_02.ts index 6ec1bf0380d1e..ce28d10ec35c7 100644 --- a/tests/cases/fourslash/goToImplementationLocal_02.ts +++ b/tests/cases/fourslash/goToImplementationLocal_02.ts @@ -5,4 +5,4 @@ //// x.he/*function_call*/llo(); //// -verify.allRangesAppearInImplementationList("function_call"); +verify.baselineGoToImplementation("function_call"); diff --git a/tests/cases/fourslash/goToImplementationLocal_03.ts b/tests/cases/fourslash/goToImplementationLocal_03.ts index 6f40437a8bb96..68ad6b7b2b4f4 100644 --- a/tests/cases/fourslash/goToImplementationLocal_03.ts +++ b/tests/cases/fourslash/goToImplementationLocal_03.ts @@ -9,4 +9,4 @@ //// hello = {}; //// -verify.allRangesAppearInImplementationList("local_var"); +verify.baselineGoToImplementation("local_var"); diff --git a/tests/cases/fourslash/goToImplementationLocal_04.ts b/tests/cases/fourslash/goToImplementationLocal_04.ts index e564a37559216..c312848ffe8cc 100644 --- a/tests/cases/fourslash/goToImplementationLocal_04.ts +++ b/tests/cases/fourslash/goToImplementationLocal_04.ts @@ -7,4 +7,4 @@ //// hello(); //// -verify.allRangesAppearInImplementationList("local_var"); +verify.baselineGoToImplementation("local_var"); diff --git a/tests/cases/fourslash/goToImplementationLocal_05.ts b/tests/cases/fourslash/goToImplementationLocal_05.ts index c8e07ab7a7460..d0a2ddca43673 100644 --- a/tests/cases/fourslash/goToImplementationLocal_05.ts +++ b/tests/cases/fourslash/goToImplementationLocal_05.ts @@ -9,4 +9,4 @@ //// var [|someVar|] = new Bar(); //// someVa/*reference*/r.hello(); -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationLocal_06.ts b/tests/cases/fourslash/goToImplementationLocal_06.ts index 90c489bcf5402..37bb471e02510 100644 --- a/tests/cases/fourslash/goToImplementationLocal_06.ts +++ b/tests/cases/fourslash/goToImplementationLocal_06.ts @@ -5,4 +5,4 @@ //// declare var [|someVar|]: string; //// someVa/*reference*/r -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationLocal_07.ts b/tests/cases/fourslash/goToImplementationLocal_07.ts index b24b463e10721..f30d17abd3d6f 100644 --- a/tests/cases/fourslash/goToImplementationLocal_07.ts +++ b/tests/cases/fourslash/goToImplementationLocal_07.ts @@ -5,4 +5,4 @@ //// declare function [|someFunction|](): () => void; //// someFun/*reference*/ction(); -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationLocal_08.ts b/tests/cases/fourslash/goToImplementationLocal_08.ts index b24b463e10721..f30d17abd3d6f 100644 --- a/tests/cases/fourslash/goToImplementationLocal_08.ts +++ b/tests/cases/fourslash/goToImplementationLocal_08.ts @@ -5,4 +5,4 @@ //// declare function [|someFunction|](): () => void; //// someFun/*reference*/ction(); -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationNamespace_00.ts b/tests/cases/fourslash/goToImplementationNamespace_00.ts index c1e05398e22f6..c428dd2a8dd7f 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_00.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_00.ts @@ -13,8 +13,4 @@ //// let x = Fo/*reference0*/o; //// let y = Ba/*reference1*/r; -for (let i = 0; i < 2; i ++) { - goTo.marker("reference" + i); - goTo.implementation(); - verify.caretAtMarker("implementation" + i); -} \ No newline at end of file +verify.baselineGoToImplementation("reference0", "reference1"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationNamespace_01.ts b/tests/cases/fourslash/goToImplementationNamespace_01.ts index 7d1d36ecde7cb..d5a762a433b13 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_01.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_01.ts @@ -8,4 +8,4 @@ //// //// Foo.hell/*reference*/o(); -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationNamespace_02.ts b/tests/cases/fourslash/goToImplementationNamespace_02.ts index c2c4318493ef8..56b384b1b0c63 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_02.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_02.ts @@ -8,4 +8,4 @@ //// //// Foo.hell/*reference*/o(); -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationNamespace_03.ts b/tests/cases/fourslash/goToImplementationNamespace_03.ts index 1cc6039933d1b..01400d8cdbb87 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_03.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_03.ts @@ -24,4 +24,4 @@ //// //// } -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationNamespace_04.ts b/tests/cases/fourslash/goToImplementationNamespace_04.ts index 557b690a42d72..4f6b795fd747f 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_04.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_04.ts @@ -24,4 +24,4 @@ //// //// } -verify.allRangesAppearInImplementationList("reference"); +verify.baselineGoToImplementation("reference"); diff --git a/tests/cases/fourslash/goToImplementationNamespace_05.ts b/tests/cases/fourslash/goToImplementationNamespace_05.ts index 6fcdb7a396d5a..324652a638e85 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_05.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_05.ts @@ -15,8 +15,4 @@ //// let x1 = Foo.B/*reference2*/az; //// let y1 = Bar.B/*reference3*/az; -for (let i = 0; i < 4; i ++) { - goTo.marker("reference" + i); - goTo.implementation(); - verify.caretAtMarker("implementation" + i); -} \ No newline at end of file +verify.baselineGoToImplementation("reference0", "reference1", "reference2", "reference3"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationNamespace_06.ts b/tests/cases/fourslash/goToImplementationNamespace_06.ts index 62ee499975863..fe716a8176577 100644 --- a/tests/cases/fourslash/goToImplementationNamespace_06.ts +++ b/tests/cases/fourslash/goToImplementationNamespace_06.ts @@ -9,4 +9,4 @@ //// //// let x: typeof Foo = [|{ hello() {} }|]; -verify.allRangesAppearInImplementationList("declaration"); \ No newline at end of file +verify.baselineGoToImplementation("declaration"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts index 4fed473c46bb1..fc8f690f7d9de 100644 --- a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts +++ b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_00.ts @@ -34,10 +34,4 @@ //// }; //// } -goTo.marker("classExpressionRef"); -goTo.implementation(); -verify.caretAtMarker("classExpression"); - -goTo.marker("declaredClassRef"); -goTo.implementation(); -verify.caretAtMarker("declaredClass"); +verify.baselineGoToImplementation("classExpressionRef", "declaredClassRef"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_01.ts b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_01.ts index 23af9ea159118..7061bfabd0ce0 100644 --- a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_01.ts +++ b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_01.ts @@ -44,4 +44,4 @@ //// //// createBarUsingClassDeclaration().Fo/*reference*/o; -verify.allRangesAppearInImplementationList("reference"); \ No newline at end of file +verify.baselineGoToImplementation("reference"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_02.ts b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_02.ts index 30542c0c52b25..312f6707feaa5 100644 --- a/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_02.ts +++ b/tests/cases/fourslash/goToImplementationShorthandPropertyAssignment_02.ts @@ -18,4 +18,4 @@ //// x.h/*function_call*/ello(); //// } -verify.allRangesAppearInImplementationList("function_call"); \ No newline at end of file +verify.baselineGoToImplementation("function_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationSuper_00.ts b/tests/cases/fourslash/goToImplementationSuper_00.ts index 16e059e43f146..055b1d70bc223 100644 --- a/tests/cases/fourslash/goToImplementationSuper_00.ts +++ b/tests/cases/fourslash/goToImplementationSuper_00.ts @@ -12,4 +12,4 @@ //// } //// } -verify.allRangesAppearInImplementationList("super_call"); \ No newline at end of file +verify.baselineGoToImplementation("super_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationSuper_01.ts b/tests/cases/fourslash/goToImplementationSuper_01.ts index 6313b3930d92a..a794f3ab7a7d2 100644 --- a/tests/cases/fourslash/goToImplementationSuper_01.ts +++ b/tests/cases/fourslash/goToImplementationSuper_01.ts @@ -12,4 +12,4 @@ //// } //// } -verify.allRangesAppearInImplementationList("super_call"); \ No newline at end of file +verify.baselineGoToImplementation("super_call"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToImplementationThis_00.ts b/tests/cases/fourslash/goToImplementationThis_00.ts index 5162eee9b4677..6a2bc2199b946 100644 --- a/tests/cases/fourslash/goToImplementationThis_00.ts +++ b/tests/cases/fourslash/goToImplementationThis_00.ts @@ -10,4 +10,4 @@ //// whatever() {} //// } -verify.allRangesAppearInImplementationList("this_call"); +verify.baselineGoToImplementation("this_call"); diff --git a/tests/cases/fourslash/goToImplementationThis_01.ts b/tests/cases/fourslash/goToImplementationThis_01.ts index cd5ab3bfaaa8d..8adfe5a7f144b 100644 --- a/tests/cases/fourslash/goToImplementationThis_01.ts +++ b/tests/cases/fourslash/goToImplementationThis_01.ts @@ -8,4 +8,4 @@ //// } //// } -verify.allRangesAppearInImplementationList("this_type"); +verify.baselineGoToImplementation("this_type"); diff --git a/tests/cases/fourslash/goToImplementationTypeAlias_00.ts b/tests/cases/fourslash/goToImplementationTypeAlias_00.ts index 6eb997c2a8ab1..6b9ea12559e91 100644 --- a/tests/cases/fourslash/goToImplementationTypeAlias_00.ts +++ b/tests/cases/fourslash/goToImplementationTypeAlias_00.ts @@ -9,4 +9,4 @@ //// import { TypeAlias } from "./def"; //// const c: T/*ref*/ypeAlias = [|{ P: 2 }|]; -verify.allRangesAppearInImplementationList("ref"); \ No newline at end of file +verify.baselineGoToImplementation("ref"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToModuleAliasDefinition.ts b/tests/cases/fourslash/goToModuleAliasDefinition.ts index 98724228a6e4c..dbaba74314f4d 100644 --- a/tests/cases/fourslash/goToModuleAliasDefinition.ts +++ b/tests/cases/fourslash/goToModuleAliasDefinition.ts @@ -8,4 +8,4 @@ //// var x = new [|/*1*/n|].Foo(); // Won't-fixed: Should go to '2' instead -verify.goToDefinition("1", "3"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/goToTypeDefinition.ts b/tests/cases/fourslash/goToTypeDefinition.ts index b6bbd83900367..30fbd1ff77950 100644 --- a/tests/cases/fourslash/goToTypeDefinition.ts +++ b/tests/cases/fourslash/goToTypeDefinition.ts @@ -9,4 +9,4 @@ // @Filename: goToTypeDefinition_Consumption.ts /////*reference*/c = undefined; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinition2.ts b/tests/cases/fourslash/goToTypeDefinition2.ts index 4f93edcd68a13..14b14f13d4e78 100644 --- a/tests/cases/fourslash/goToTypeDefinition2.ts +++ b/tests/cases/fourslash/goToTypeDefinition2.ts @@ -13,4 +13,4 @@ ////var i2: I2; ////i2.prop/*reference*/erty; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinition3.ts b/tests/cases/fourslash/goToTypeDefinition3.ts index 861796e0a34bd..823293f64098b 100644 --- a/tests/cases/fourslash/goToTypeDefinition3.ts +++ b/tests/cases/fourslash/goToTypeDefinition3.ts @@ -3,4 +3,4 @@ ////type /*definition*/T = string; ////const x: /*reference*/T; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinition4.ts b/tests/cases/fourslash/goToTypeDefinition4.ts index 7c00b132f8906..21a6404b719a8 100644 --- a/tests/cases/fourslash/goToTypeDefinition4.ts +++ b/tests/cases/fourslash/goToTypeDefinition4.ts @@ -8,5 +8,7 @@ ////import { T } from "./foo"; ////let x: [|/*reference*/T|]; -verify.goToType("reference", []); -verify.goToDefinition("reference", ["def0", "def1"]); +verify.baselineCommands( + { type: "goToType", markerOrRange: "reference" }, + { type: "goToDefinition", markerOrRange: "reference" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/goToTypeDefinition5.ts b/tests/cases/fourslash/goToTypeDefinition5.ts index 8750a6697bf0b..836ea24df4b61 100644 --- a/tests/cases/fourslash/goToTypeDefinition5.ts +++ b/tests/cases/fourslash/goToTypeDefinition5.ts @@ -7,4 +7,4 @@ /////*reference*/Foo; -verify.goToType("reference", []); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinitionAliases.ts b/tests/cases/fourslash/goToTypeDefinitionAliases.ts index 89dacedc7aa36..2d99f74c7e1d8 100644 --- a/tests/cases/fourslash/goToTypeDefinitionAliases.ts +++ b/tests/cases/fourslash/goToTypeDefinitionAliases.ts @@ -15,7 +15,7 @@ ////import {/*reference1*/v2 as v3} from "./goToTypeDefinitioAliases_module2"; /////*reference2*/v3; -verify.goToType({ - reference1: "definition", - reference2: "definition" -}); +verify.baselineGoToType( + "reference1", + "reference2", +); diff --git a/tests/cases/fourslash/goToTypeDefinitionEnumMembers.ts b/tests/cases/fourslash/goToTypeDefinitionEnumMembers.ts index d4f89d29ee803..192897526ea9c 100644 --- a/tests/cases/fourslash/goToTypeDefinitionEnumMembers.ts +++ b/tests/cases/fourslash/goToTypeDefinitionEnumMembers.ts @@ -8,4 +8,4 @@ //// /////*reference*/x; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts b/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts index a7d1d72495e34..b1afc3d74fff5 100644 --- a/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts +++ b/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts @@ -10,4 +10,4 @@ ////interface /*definition*/ImportMeta { ////} -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinitionModule.ts b/tests/cases/fourslash/goToTypeDefinitionModule.ts index 00e0fa82a092c..8f64f9f0e1205 100644 --- a/tests/cases/fourslash/goToTypeDefinitionModule.ts +++ b/tests/cases/fourslash/goToTypeDefinitionModule.ts @@ -10,7 +10,7 @@ /////*reference1*/M; /////*reference2*/m; -verify.goToType({ - reference1: "definition", - reference2: "definition" -}); +verify.baselineGoToType( + "reference1", + "reference2", +); diff --git a/tests/cases/fourslash/goToTypeDefinitionPrimitives.ts b/tests/cases/fourslash/goToTypeDefinitionPrimitives.ts index 0b6f690352443..e759cca828e1f 100644 --- a/tests/cases/fourslash/goToTypeDefinitionPrimitives.ts +++ b/tests/cases/fourslash/goToTypeDefinitionPrimitives.ts @@ -12,9 +12,9 @@ /////*reference3*/y; /////*reference4*/y; -verify.goToType({ - reference1: [], - reference2: [], - reference3: [], - reference4: [] -}); +verify.baselineGoToType( + "reference1", + "reference2", + "reference3", + "reference4", +); diff --git a/tests/cases/fourslash/goToTypeDefinitionUnionType.ts b/tests/cases/fourslash/goToTypeDefinitionUnionType.ts index 5658ce77b6472..d6279890ae1e4 100644 --- a/tests/cases/fourslash/goToTypeDefinitionUnionType.ts +++ b/tests/cases/fourslash/goToTypeDefinitionUnionType.ts @@ -18,4 +18,4 @@ //// /////*reference*/x; -verify.goToType("reference", ["definition0", "definition1", "definition2"]); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/goToTypeDefinition_returnType.ts b/tests/cases/fourslash/goToTypeDefinition_returnType.ts index c968f6b62636c..094021a380777 100644 --- a/tests/cases/fourslash/goToTypeDefinition_returnType.ts +++ b/tests/cases/fourslash/goToTypeDefinition_returnType.ts @@ -34,14 +34,14 @@ /////*f7*/f7(); /////*f8*/f8(); -verify.goToType({ - f0: "I", - f1: "T", - f2: "I", - f3: "f3Def", - f4: "I", - f5: ["I", "J"], - f6: ["I", "J"], - f7: "f7Def", - f8: "f8Def", -}); +verify.baselineGoToType( + "f0", + "f1", + "f2", + "f3", + "f4", + "f5", + "f6", + "f7", + "f8" +); diff --git a/tests/cases/fourslash/goToTypeDefinition_typedef.ts b/tests/cases/fourslash/goToTypeDefinition_typedef.ts index b6a9587d2f71d..09f4a9d2d2bb9 100644 --- a/tests/cases/fourslash/goToTypeDefinition_typedef.ts +++ b/tests/cases/fourslash/goToTypeDefinition_typedef.ts @@ -11,4 +11,4 @@ /////** @type {I} */ ////const /*ref*/i = { x: 0 }; -verify.goToType("ref", "def"); +verify.baselineGoToType("ref"); diff --git a/tests/cases/fourslash/gotoDefinitionConstructorFunction.ts b/tests/cases/fourslash/gotoDefinitionConstructorFunction.ts index aa149e70d7dc4..a1deefbe547c2 100644 --- a/tests/cases/fourslash/gotoDefinitionConstructorFunction.ts +++ b/tests/cases/fourslash/gotoDefinitionConstructorFunction.ts @@ -12,4 +12,4 @@ //// new [|/*start*/StringStreamm|]() //// }; -verify.goToDefinition('start', 'end') +verify.baselineGoToDefinition('start') diff --git a/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern1.ts b/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern1.ts index dcc5a977be581..d78ceacbe777f 100644 --- a/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern1.ts +++ b/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern1.ts @@ -9,4 +9,4 @@ //// } //// bar(({[|pr/*goto*/op2|]})=>{}); -verify.goToDefinition("goto", "destination"); \ No newline at end of file +verify.baselineGoToDefinition("goto"); \ No newline at end of file diff --git a/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts b/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts index 6d513d6abee3a..cfaa385bd48bc 100644 --- a/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts +++ b/tests/cases/fourslash/gotoDefinitionInObjectBindingPattern2.ts @@ -3,6 +3,8 @@ //// var p0 = ({a/*1*/a}) => {console.log(aa)}; //// function f2({ [|a/*a1*/1|], [|b/*b1*/1|] }: { /*a1_dest*/a1: number, /*b1_dest*/b1: number } = { a1: 0, b1: 0 }) {} -verify.goToDefinition("1", []); -verify.goToDefinition("a1", "a1_dest"); -verify.goToDefinition("b1", "b1_dest"); \ No newline at end of file +verify.baselineGoToDefinition( + "1", + "a1", + "b1", +); \ No newline at end of file diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag1.ts b/tests/cases/fourslash/gotoDefinitionLinkTag1.ts index 26033e7260753..defd53f4466cf 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag1.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag1.ts @@ -34,23 +34,4 @@ //// /** {@link /*use7*/[|Foo|] }dd*/ //// const f = "" -goTo.marker("use1"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use2"); -verify.goToDefinitionIs("def2"); - -goTo.marker("use3"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use4"); -verify.goToDefinitionIs("def2"); - -goTo.marker("use5"); -verify.goToDefinitionIs("def3"); - -goTo.marker("use6"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use7"); -verify.goToDefinitionIs("def1"); +verify.baselineGetDefinitionAtPosition("use1", "use2", "use3", "use4", "use5", "use6", "use7"); diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag2.ts b/tests/cases/fourslash/gotoDefinitionLinkTag2.ts index ad463c51f791f..4254521193fc6 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag2.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag2.ts @@ -5,5 +5,4 @@ //// [|/*2*/A|] ////} -goTo.marker("1"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition("1"); \ No newline at end of file diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag3.ts b/tests/cases/fourslash/gotoDefinitionLinkTag3.ts index 8dc4105ae8cc2..d8dfaede35e03 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag3.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag3.ts @@ -9,5 +9,4 @@ //// foo: E.Foo; ////} -goTo.marker("1"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag4.ts b/tests/cases/fourslash/gotoDefinitionLinkTag4.ts index 6df523b058e66..d6ad352ee5a36 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag4.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag4.ts @@ -11,5 +11,4 @@ //// Foo ////} -goTo.marker("1"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag5.ts b/tests/cases/fourslash/gotoDefinitionLinkTag5.ts index 8425653f41b91..16718aed3ba4e 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag5.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag5.ts @@ -5,5 +5,4 @@ //// [|/*2*/B|] ////} -goTo.marker("1"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/gotoDefinitionLinkTag6.ts b/tests/cases/fourslash/gotoDefinitionLinkTag6.ts index c76fcb08fd8e8..1b74df31e04a1 100644 --- a/tests/cases/fourslash/gotoDefinitionLinkTag6.ts +++ b/tests/cases/fourslash/gotoDefinitionLinkTag6.ts @@ -5,5 +5,4 @@ //// [|/*2*/A|] ////} -goTo.marker("1"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts b/tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts index 3d58d869c49e2..0cf7b80d7aa33 100644 --- a/tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts +++ b/tests/cases/fourslash/gotoDefinitionPropertyAccessExpressionHeritageClause.ts @@ -7,4 +7,4 @@ //// class C extends (foo()).[|/*B*/B|] {} //// class C1 extends foo().[|/*B1*/B|] {} -verify.goToDefinition([["B", "refB"], ["B1", "refB"]]); \ No newline at end of file +verify.baselineGoToDefinition("B", "B1"); \ No newline at end of file diff --git a/tests/cases/fourslash/gotoDefinitionSatisfiesTag.ts b/tests/cases/fourslash/gotoDefinitionSatisfiesTag.ts index 0b5ebe8e2af61..22a72ea817b1b 100644 --- a/tests/cases/fourslash/gotoDefinitionSatisfiesTag.ts +++ b/tests/cases/fourslash/gotoDefinitionSatisfiesTag.ts @@ -14,5 +14,4 @@ /////** @satisfies {/*use*/[|T|]} comment */ ////const foo = { a: 1 }; -goTo.marker("use"); -verify.goToDefinitionIs("def"); +verify.baselineGetDefinitionAtPosition("use"); diff --git a/tests/cases/fourslash/gotoDefinitionThrowsTag.ts b/tests/cases/fourslash/gotoDefinitionThrowsTag.ts index 2597cf9a7255d..a46a8917d9df2 100644 --- a/tests/cases/fourslash/gotoDefinitionThrowsTag.ts +++ b/tests/cases/fourslash/gotoDefinitionThrowsTag.ts @@ -7,5 +7,4 @@ //// */ ////function f() {} -goTo.marker("use"); -verify.goToDefinitionIs("def"); +verify.baselineGetDefinitionAtPosition("use"); diff --git a/tests/cases/fourslash/hoverOverComment.ts b/tests/cases/fourslash/hoverOverComment.ts index 80607099afe36..5d4d2e482780d 100644 --- a/tests/cases/fourslash/hoverOverComment.ts +++ b/tests/cases/fourslash/hoverOverComment.ts @@ -6,5 +6,7 @@ goTo.marker(); verify.quickInfoIs(""); -verify.goToDefinitionIs([]); -verify.baselineFindAllReferences(""); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: "" }, + { type: "getDefinitionAtPosition", markerOrRange: "" }, +); diff --git a/tests/cases/fourslash/importTypeNodeGoToDefinition.ts b/tests/cases/fourslash/importTypeNodeGoToDefinition.ts index 31b5c270ec655..fea61713cf756 100644 --- a/tests/cases/fourslash/importTypeNodeGoToDefinition.ts +++ b/tests/cases/fourslash/importTypeNodeGoToDefinition.ts @@ -11,12 +11,12 @@ ////type A = typeof import([|/*1*/"./ns"|]).[|/*2*/Foo|].[|/*3*/Bar|]; ////type B = import([|/*4*/"./ns"|]).[|/*5*/Foo|].[|/*6*/Bar|].[|/*7*/Baz|]; -verify.goToDefinition([ - ["1", "refFile"], - ["2", "refFoo"], - ["3", "refBar"], - ["4", "refFile"], - ["5", "refFoo"], - ["6", "refBar"], - ["7", "refBaz"], -]); +verify.baselineGoToDefinition( + "1", + "2", + "3", + "4", + "5", + "6", + "7", +); diff --git a/tests/cases/fourslash/javaScriptClass2.ts b/tests/cases/fourslash/javaScriptClass2.ts index e8edf33bc4221..f2e2375215cb3 100644 --- a/tests/cases/fourslash/javaScriptClass2.ts +++ b/tests/cases/fourslash/javaScriptClass2.ts @@ -14,4 +14,4 @@ //// var x = new Foo(); //// x.[|union|]; -verify.rangesWithSameTextAreRenameLocations("union"); +verify.baselineRenameAtRangesWithText("union"); diff --git a/tests/cases/fourslash/javaScriptClass3.ts b/tests/cases/fourslash/javaScriptClass3.ts index 60f51b4ac791c..38c0bdf9ec024 100644 --- a/tests/cases/fourslash/javaScriptClass3.ts +++ b/tests/cases/fourslash/javaScriptClass3.ts @@ -15,7 +15,7 @@ //// x.[|alpha/*src1*/|]; //// x.[|beta/*src2*/|]; -verify.goToDefinition({ - src1: "dst1", - src2: "dst2" -}); +verify.baselineGoToDefinition( + "src1", + "src2", +); diff --git a/tests/cases/fourslash/jsDocSee1.ts b/tests/cases/fourslash/jsDocSee1.ts index 1f9f83be47c7b..8be4d74bf633a 100644 --- a/tests/cases/fourslash/jsDocSee1.ts +++ b/tests/cases/fourslash/jsDocSee1.ts @@ -25,17 +25,4 @@ //// /** @see /*use5*/[|d|] dd*/ //// const e = "" -goTo.marker("use1"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use2"); -verify.goToDefinitionIs("def2"); - -goTo.marker("use3"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use4"); -verify.goToDefinitionIs("def2"); - -goTo.marker("use5"); -verify.goToDefinitionIs("def3"); \ No newline at end of file +verify.baselineGetDefinitionAtPosition("use1", "use2", "use3", "use4", "use5"); \ No newline at end of file diff --git a/tests/cases/fourslash/jsDocSee2.ts b/tests/cases/fourslash/jsDocSee2.ts index efbff8e3387a6..9d08d6ee28762 100644 --- a/tests/cases/fourslash/jsDocSee2.ts +++ b/tests/cases/fourslash/jsDocSee2.ts @@ -21,23 +21,12 @@ //// /** @see d@{/*use7*/[|fff|]} partial reference */ //// const g = "" -goTo.marker("use1"); -verify.goToDefinition([]); - -goTo.marker("use2"); -verify.goToDefinition([]); - -goTo.marker("use3"); -verify.goToDefinition([]); - -goTo.marker("use4"); -verify.goToDefinition([]); - -goTo.marker("use5"); -verify.goToDefinitionIs("def1"); - -goTo.marker("use6"); -verify.goToDefinition([]); - -goTo.marker("use7"); -verify.goToDefinition([]); \ No newline at end of file +verify.baselineGoToDefinition( + "use1", + "use2", + "use3", + "use4", + "use5", + "use6", + "use7", +); \ No newline at end of file diff --git a/tests/cases/fourslash/jsDocSee3.ts b/tests/cases/fourslash/jsDocSee3.ts index 1438a691f361a..cc3b3f3e452de 100644 --- a/tests/cases/fourslash/jsDocSee3.ts +++ b/tests/cases/fourslash/jsDocSee3.ts @@ -8,5 +8,4 @@ //// } //// } -goTo.marker("use1"); -verify.goToDefinitionIs(["def2"]); +verify.baselineGetDefinitionAtPosition("use1"); diff --git a/tests/cases/fourslash/jsDocSee4.ts b/tests/cases/fourslash/jsDocSee4.ts index 124826068a464..ab13ec1d23008 100644 --- a/tests/cases/fourslash/jsDocSee4.ts +++ b/tests/cases/fourslash/jsDocSee4.ts @@ -17,11 +17,4 @@ //// */ //// const t3 = 1 -goTo.marker("use1"); -verify.goToDefinitionIs(["def1"]); - -goTo.marker("use2"); -verify.goToDefinitionIs(["def2"]); - -goTo.marker("use3"); -verify.goToDefinitionIs(["def2"]); +verify.baselineGetDefinitionAtPosition("use1", "use2", "use3"); diff --git a/tests/cases/fourslash/jsDocSee_rename1.ts b/tests/cases/fourslash/jsDocSee_rename1.ts index 971b6ddc4f85d..559202b8ce0a6 100644 --- a/tests/cases/fourslash/jsDocSee_rename1.ts +++ b/tests/cases/fourslash/jsDocSee_rename1.ts @@ -8,5 +8,5 @@ const [rDef, ...ranges] = test.ranges(); -verify.rangesAreRenameLocations({ findInComments: true, ranges }); +verify.baselineRename(ranges, { findInComments: true }); diff --git a/tests/cases/fourslash/jsDocServices.ts b/tests/cases/fourslash/jsDocServices.ts index 3710647aff3ab..e0cb13d35b217 100644 --- a/tests/cases/fourslash/jsDocServices.ts +++ b/tests/cases/fourslash/jsDocServices.ts @@ -13,13 +13,14 @@ const [r0, r1Def, r1, r2] = test.ranges(); const ranges = [r0, r1, r2]; -goTo.marker("use"); -verify.goToDefinitionIs("def"); -verify.goToType("use", "I"); goTo.marker("use"); verify.quickInfoIs("(parameter) foo: I", "I pity the foo"); -verify.baselineFindAllReferences("use", "def", "use2"); -verify.rangesAreDocumentHighlights(ranges); -verify.rangesAreRenameLocations(ranges); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ["use", "def", "use2"] }, + { type: "findRenameLocations", markerOrRange: ranges }, + { type: "documentHighlights", markerOrRange: ranges }, + { type: "goToType", markerOrRange: "use" }, + { type: "getDefinitionAtPosition", markerOrRange: "use" }, +); diff --git a/tests/cases/fourslash/jsObjectDefinePropertyRenameLocations.ts b/tests/cases/fourslash/jsObjectDefinePropertyRenameLocations.ts index bbaf2c66715ed..f538eb28b35c1 100644 --- a/tests/cases/fourslash/jsObjectDefinePropertyRenameLocations.ts +++ b/tests/cases/fourslash/jsObjectDefinePropertyRenameLocations.ts @@ -14,4 +14,4 @@ //// return CircularList; ////})() -verify.rangesWithSameTextAreRenameLocations(); \ No newline at end of file +verify.baselineRenameAtRangesWithText(); \ No newline at end of file diff --git a/tests/cases/fourslash/jsdocTypedefTagServices.ts b/tests/cases/fourslash/jsdocTypedefTagServices.ts index b89958fc5d243..885c85f9b433b 100644 --- a/tests/cases/fourslash/jsdocTypedefTagServices.ts +++ b/tests/cases/fourslash/jsdocTypedefTagServices.ts @@ -21,9 +21,9 @@ const desc = `type Product = { const [r0Def, ...ranges] = test.ranges(); verify.quickInfoAt("use", desc, "Doc comment"); -verify.goToDefinition("use", "def"); - -verify.rangesAreOccurrences(/*isWriteAccesss*/ undefined, ranges); -verify.rangesAreDocumentHighlights(ranges); -verify.baselineFindAllReferences("use", "def"); -verify.rangesAreRenameLocations(ranges); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ["use", "def"] }, + { type: "findRenameLocations", markerOrRange: ranges }, + { type: "documentHighlights", markerOrRange: ranges }, + { type: "goToDefinition", markerOrRange: "use" }, +); diff --git a/tests/cases/fourslash/jsxSpreadReference.ts b/tests/cases/fourslash/jsxSpreadReference.ts index 62e6328aa0785..2a4b6704a0871 100644 --- a/tests/cases/fourslash/jsxSpreadReference.ts +++ b/tests/cases/fourslash/jsxSpreadReference.ts @@ -17,5 +17,7 @@ //// [|var [|/*dst*/{| "contextRangeIndex": 0 |}nn|]: {name?: string; size?: number};|] //// var x = ; -verify.goToDefinition("src", "dst"); -verify.rangesWithSameTextAreRenameLocations("nn"); +verify.baselineCommands( + { type: "findRenameLocations", rangeText: "nn" }, + { type: "goToDefinition", markerOrRange: "src" }, +); diff --git a/tests/cases/fourslash/proto.ts b/tests/cases/fourslash/proto.ts index acf7f15b1b50f..00dfe6cf13b86 100644 --- a/tests/cases/fourslash/proto.ts +++ b/tests/cases/fourslash/proto.ts @@ -14,6 +14,6 @@ verify.quickInfos({ verify.completions({ marker: "3", includes: { name: "__proto__", text: "var __proto__: M.__proto__" } }); edit.insert("__proto__"); -verify.goToDefinitionIs("2"); +verify.baselineGetDefinitionAtPosition(edit.caretPosition()); verify.quickInfoAt("4", "var fun: (__proto__: any) => boolean"); diff --git a/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts b/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts index 9cdedf6d46e2c..e3804c7794bcd 100644 --- a/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts +++ b/tests/cases/fourslash/qualifiedName_import-declaration-with-variable-entity-names.ts @@ -13,12 +13,7 @@ goTo.marker('import'); verify.completions({ includes: { name: "x", text: "var Alpha.x: number" } }); -var def: FourSlashInterface.Range = test.ranges().filter(range => range.marker.data.name === "def")[0]; -var imp: FourSlashInterface.Range = test.ranges().filter(range => range.marker.data.name === "import")[0]; -var mem: FourSlashInterface.Range = test.ranges().filter(range => range.marker.data.name === "mem")[0]; - -verify.occurrencesAtPositionContains(def); -verify.occurrencesAtPositionContains(imp); -verify.occurrencesAtPositionContains(mem); - -verify.goToDefinitionIs("def"); +verify.baselineCommands( + { type: "documentHighlights", markerOrRange: "import" }, + { type: "getDefinitionAtPosition", markerOrRange: "import" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/quickInfoMeaning.ts b/tests/cases/fourslash/quickInfoMeaning.ts index 6d5fa3fd96467..6728cb2bc0673 100644 --- a/tests/cases/fourslash/quickInfoMeaning.ts +++ b/tests/cases/fourslash/quickInfoMeaning.ts @@ -32,11 +32,9 @@ verify.navigateTo({ goTo.marker("foo_value"); verify.quickInfoIs("const foo: number"); -verify.goToDefinitionIs("foo_value_declaration"); goTo.marker("foo_type"); verify.quickInfoIs("(alias) interface foo\nimport foo = require(\"foo_module\")"); -verify.goToDefinitionIs("foo_type_declaration"); // Above tested for global const and imported interface. Now test with global interface and imported const. @@ -68,8 +66,8 @@ verify.navigateTo({ goTo.marker("bar_value"); verify.quickInfoIs("(alias) const bar: number\nimport bar = require(\"bar_module\")"); -verify.goToDefinitionIs("bar_value_declaration"); goTo.marker("bar_type"); verify.quickInfoIs("interface bar"); -verify.goToDefinitionIs("bar_type_declaration"); + +verify.baselineGetDefinitionAtPosition("foo_value", "foo_type", "bar_value", "bar_type"); diff --git a/tests/cases/fourslash/quickInfoUntypedModuleImport.ts b/tests/cases/fourslash/quickInfoUntypedModuleImport.ts index 15bc5000d1eff..3e741b6732683 100644 --- a/tests/cases/fourslash/quickInfoUntypedModuleImport.ts +++ b/tests/cases/fourslash/quickInfoUntypedModuleImport.ts @@ -11,11 +11,12 @@ goTo.file("a.ts"); verify.numberOfErrorsInCurrentFile(0); goTo.marker("fooModule"); -verify.goToDefinitionIs(["index"]); verify.quickInfoIs(""); goTo.marker("foo"); -verify.goToDefinitionIs("foo"); verify.quickInfoIs("import foo"); -verify.baselineFindAllReferences('foo', 'fooModule', 'fooCall'); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['foo', 'fooModule', 'fooCall'] }, + { type: "getDefinitionAtPosition", markerOrRange: ["fooModule", "foo"] }, +); diff --git a/tests/cases/fourslash/reallyLargeFile.ts b/tests/cases/fourslash/reallyLargeFile.ts index 6070c1406f629..f9b6c23d7c461 100644 --- a/tests/cases/fourslash/reallyLargeFile.ts +++ b/tests/cases/fourslash/reallyLargeFile.ts @@ -583708,5 +583708,4 @@ //// ////} -goTo.marker("1"); -verify.goToDefinitionIs("1"); +verify.baselineGetDefinitionAtPosition("1"); diff --git a/tests/cases/fourslash/renameAcrossMultipleProjects.ts b/tests/cases/fourslash/renameAcrossMultipleProjects.ts index dc497e8ee3a5f..52e9b3cff2e89 100644 --- a/tests/cases/fourslash/renameAcrossMultipleProjects.ts +++ b/tests/cases/fourslash/renameAcrossMultipleProjects.ts @@ -11,4 +11,4 @@ /////// ////[|x|]++; -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameAlias.ts b/tests/cases/fourslash/renameAlias.ts index 6ff2b87816fa2..289729481efda 100644 --- a/tests/cases/fourslash/renameAlias.ts +++ b/tests/cases/fourslash/renameAlias.ts @@ -4,4 +4,4 @@ ////[|import [|{| "contextRangeIndex": 0 |}M|] = SomeModule;|] ////import C = [|M|].SomeClass; -verify.rangesWithSameTextAreRenameLocations("M"); +verify.baselineRenameAtRangesWithText("M"); diff --git a/tests/cases/fourslash/renameAlias2.ts b/tests/cases/fourslash/renameAlias2.ts index 60fb0eab3f475..5a9528dc06123 100644 --- a/tests/cases/fourslash/renameAlias2.ts +++ b/tests/cases/fourslash/renameAlias2.ts @@ -4,4 +4,4 @@ ////import M = [|SomeModule|]; ////import C = M.SomeClass; -verify.rangesWithSameTextAreRenameLocations("SomeModule"); \ No newline at end of file +verify.baselineRenameAtRangesWithText("SomeModule"); \ No newline at end of file diff --git a/tests/cases/fourslash/renameAlias3.ts b/tests/cases/fourslash/renameAlias3.ts index 78e01f6b13b87..ae79d42b090ff 100644 --- a/tests/cases/fourslash/renameAlias3.ts +++ b/tests/cases/fourslash/renameAlias3.ts @@ -4,4 +4,4 @@ ////import M = SomeModule; ////import C = M.[|SomeClass|]; -verify.rangesWithSameTextAreRenameLocations("SomeClass"); +verify.baselineRenameAtRangesWithText("SomeClass"); diff --git a/tests/cases/fourslash/renameAliasExternalModule.ts b/tests/cases/fourslash/renameAliasExternalModule.ts index dc259a2ef5af8..82ef58b4e5c34 100644 --- a/tests/cases/fourslash/renameAliasExternalModule.ts +++ b/tests/cases/fourslash/renameAliasExternalModule.ts @@ -8,4 +8,4 @@ ////[|import [|{| "contextRangeIndex": 0 |}M|] = require("./a");|] ////import C = [|M|].SomeClass; -verify.rangesWithSameTextAreRenameLocations("M"); +verify.baselineRenameAtRangesWithText("M"); diff --git a/tests/cases/fourslash/renameAliasExternalModule2.ts b/tests/cases/fourslash/renameAliasExternalModule2.ts index a78a616d6ef10..345a5860cf920 100644 --- a/tests/cases/fourslash/renameAliasExternalModule2.ts +++ b/tests/cases/fourslash/renameAliasExternalModule2.ts @@ -9,5 +9,4 @@ ////import C = [|M|].SomeClass; const [r0Def, r0, r1Def, r1, r2Def, r2, r3] = test.ranges(); -verify.rangesAreRenameLocations([r0, r1]); -verify.rangesAreRenameLocations([r2, r3]); +verify.baselineRename([r0, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameAliasExternalModule3.ts b/tests/cases/fourslash/renameAliasExternalModule3.ts index 0aee598124c8c..a152c3e4037b1 100644 --- a/tests/cases/fourslash/renameAliasExternalModule3.ts +++ b/tests/cases/fourslash/renameAliasExternalModule3.ts @@ -8,4 +8,4 @@ ////import M = require("./a"); ////import C = M.[|SomeClass|]; -verify.rangesWithSameTextAreRenameLocations("SomeClass"); +verify.baselineRenameAtRangesWithText("SomeClass"); diff --git a/tests/cases/fourslash/renameBindingElementInitializerExternal.ts b/tests/cases/fourslash/renameBindingElementInitializerExternal.ts index 852be8cc7b8ad..e3c55039141aa 100644 --- a/tests/cases/fourslash/renameBindingElementInitializerExternal.ts +++ b/tests/cases/fourslash/renameBindingElementInitializerExternal.ts @@ -14,4 +14,4 @@ //// oldName: newName = [|external|] ////} = obj; -verify.rangesWithSameTextAreRenameLocations("external"); +verify.baselineRenameAtRangesWithText("external"); diff --git a/tests/cases/fourslash/renameBindingElementInitializerProperty.ts b/tests/cases/fourslash/renameBindingElementInitializerProperty.ts index ed07a6cec0ddc..624fc577df684 100644 --- a/tests/cases/fourslash/renameBindingElementInitializerProperty.ts +++ b/tests/cases/fourslash/renameBindingElementInitializerProperty.ts @@ -8,13 +8,4 @@ ////f({[|[|{| "contextRangeIndex": 6 |}required|]: 10|]}); const [r0Def, r0, r1, r2Def, r2, r3, r4Def, r4] = test.ranges(); -verify.renameLocations([r0, r1, r3], [ - { range: r0, prefixText: "required: " }, - { range: r1}, - { range: r3} -]); -verify.renameLocations([r2, r4], [ - { range: r0, suffixText: ": required" }, - { range: r2}, - { range: r4} -]); +verify.baselineRename([r0, r1, r3, r2, r4]); diff --git a/tests/cases/fourslash/renameCommentsAndStrings1.ts b/tests/cases/fourslash/renameCommentsAndStrings1.ts index 53cae40e72f15..6ccfd32475297 100644 --- a/tests/cases/fourslash/renameCommentsAndStrings1.ts +++ b/tests/cases/fourslash/renameCommentsAndStrings1.ts @@ -7,4 +7,4 @@ //// "this is a reference to Bar in a string" ////}|] -verify.rangesWithSameTextAreRenameLocations("Bar"); +verify.baselineRenameAtRangesWithText("Bar"); diff --git a/tests/cases/fourslash/renameCommentsAndStrings2.ts b/tests/cases/fourslash/renameCommentsAndStrings2.ts index 8d088759b0756..10145c9cf03fb 100644 --- a/tests/cases/fourslash/renameCommentsAndStrings2.ts +++ b/tests/cases/fourslash/renameCommentsAndStrings2.ts @@ -8,4 +8,4 @@ ////}|] const [rDef, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInStrings: true, ranges }) +verify.baselineRename(ranges[0], { findInStrings: true }) diff --git a/tests/cases/fourslash/renameCommentsAndStrings3.ts b/tests/cases/fourslash/renameCommentsAndStrings3.ts index 08672716a6110..fb56e9d5656d8 100644 --- a/tests/cases/fourslash/renameCommentsAndStrings3.ts +++ b/tests/cases/fourslash/renameCommentsAndStrings3.ts @@ -8,4 +8,4 @@ ////}|] const [rDef, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInComments: true, ranges }); +verify.baselineRename(ranges[0], { findInComments: true }); diff --git a/tests/cases/fourslash/renameCommentsAndStrings4.ts b/tests/cases/fourslash/renameCommentsAndStrings4.ts index a5e0e24b3ef31..af1b550a5afc1 100644 --- a/tests/cases/fourslash/renameCommentsAndStrings4.ts +++ b/tests/cases/fourslash/renameCommentsAndStrings4.ts @@ -13,4 +13,4 @@ ////}|] const [rDef, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInStrings: true, findInComments: true, ranges }); +verify.baselineRename(ranges[0], { findInStrings: true, findInComments: true }); diff --git a/tests/cases/fourslash/renameContextuallyTypedProperties.ts b/tests/cases/fourslash/renameContextuallyTypedProperties.ts index da5286a714c64..c556ef97e5bb8 100644 --- a/tests/cases/fourslash/renameContextuallyTypedProperties.ts +++ b/tests/cases/fourslash/renameContextuallyTypedProperties.ts @@ -55,4 +55,4 @@ //// set ["prop2"](v) { } ////}; -verify.rangesWithSameTextAreRenameLocations("prop1"); +verify.baselineRenameAtRangesWithText("prop1"); diff --git a/tests/cases/fourslash/renameContextuallyTypedProperties2.ts b/tests/cases/fourslash/renameContextuallyTypedProperties2.ts index fc3980404c983..f25921c248b94 100644 --- a/tests/cases/fourslash/renameContextuallyTypedProperties2.ts +++ b/tests/cases/fourslash/renameContextuallyTypedProperties2.ts @@ -55,4 +55,4 @@ //// [|set ["[|{| "contextRangeIndex": 20 |}prop2|]"](v) { }|] ////}; -verify.rangesWithSameTextAreRenameLocations("prop2"); +verify.baselineRenameAtRangesWithText("prop2"); diff --git a/tests/cases/fourslash/renameCrossJsTs01.ts b/tests/cases/fourslash/renameCrossJsTs01.ts index 2ebdaf80d0435..81b8808dfceec 100644 --- a/tests/cases/fourslash/renameCrossJsTs01.ts +++ b/tests/cases/fourslash/renameCrossJsTs01.ts @@ -9,5 +9,4 @@ ////var t = [|area|](10); const [r0Def, r0, r1Def, r1, r2] = test.ranges(); -verify.renameLocations(r0, [r0, r1, r2]); -verify.renameLocations([r1, r2], [{ range: r1, prefixText: "area as " }, r2]); +verify.baselineRename([r0, r1, r2]); diff --git a/tests/cases/fourslash/renameDeclarationKeywords.ts b/tests/cases/fourslash/renameDeclarationKeywords.ts index 0a762150ff65a..9ffc1028d7dca 100644 --- a/tests/cases/fourslash/renameDeclarationKeywords.ts +++ b/tests/cases/fourslash/renameDeclarationKeywords.ts @@ -77,19 +77,19 @@ const [ constDecl_constKeyword, constDecl_name, ] = test.ranges(); -verify.renameLocations(classDecl1_classKeyword, [{ range: classDecl1_name }]); -verify.renameLocations(classDecl1_extendsKeyword, [{ range: baseDecl_name }, { range: classDecl1_extendsName }, { range: interfaceDecl1_extendsName }]); -verify.renameLocations(classDecl1_implementsKeyword, [{ range: implemented1Decl_name }, { range: classDecl1_implementsName }]); -for (const keyword of [getDecl_getKeyword, setDecl_setKeyword]) { - verify.renameLocations(keyword, [{ range: getDecl_name }, { range: setDecl_name }]); -} -verify.renameLocations(interfaceDecl1_interfaceKeyword, [{ range: interfaceDecl1_name }]); -verify.renameLocations(interfaceDecl1_extendsKeyword, [{ range: baseDecl_name }, { range: classDecl1_extendsName }, { range: interfaceDecl1_extendsName }]); -verify.renameLocations(typeDecl_typeKeyword, [{ range: typeDecl_name }]); -verify.renameLocations(enumDecl_enumKeyword, [{ range: enumDecl_name }]); -verify.renameLocations(namespaceDecl_namespaceKeyword, [{ range: namespaceDecl_name }]); -verify.renameLocations(moduleDecl_moduleKeyword, [{ range: moduleDecl_name }]); -verify.renameLocations(functionDecl_functionKeyword, [{ range: functionDecl_name }]); -verify.renameLocations(varDecl_varKeyword, [{ range: varDecl_name }]); -verify.renameLocations(letDecl_letKeyword, [{ range: letDecl_name }]); -verify.renameLocations(constDecl_constKeyword, [{ range: constDecl_name }]); \ No newline at end of file +verify.baselineRename([ + classDecl1_classKeyword, + classDecl1_extendsKeyword, + classDecl1_implementsKeyword, + getDecl_getKeyword, setDecl_setKeyword, + interfaceDecl1_interfaceKeyword, + interfaceDecl1_extendsKeyword, + typeDecl_typeKeyword, + enumDecl_enumKeyword, + namespaceDecl_namespaceKeyword, + moduleDecl_moduleKeyword, + functionDecl_functionKeyword, + varDecl_varKeyword, + letDecl_letKeyword, + constDecl_constKeyword, +]); \ No newline at end of file diff --git a/tests/cases/fourslash/renameDefaultImport.ts b/tests/cases/fourslash/renameDefaultImport.ts index 9de3983b47db8..f977ee1001575 100644 --- a/tests/cases/fourslash/renameDefaultImport.ts +++ b/tests/cases/fourslash/renameDefaultImport.ts @@ -11,11 +11,10 @@ ////let b = new [|B|](); ////b.test(); -goTo.marker("1"); -verify.occurrencesAtPositionCount(1); - const [CDef, C, B0Def, B0, B1] = test.ranges();; -verify.renameLocations(C, [C, B0, B1]); -verify.rangesAreRenameLocations([B0, B1]); -verify.baselineFindAllReferences('1', '2') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2'] }, + { type: "findRenameLocations", markerOrRange: [C, B0, B1] }, + { type: "documentHighlights", markerOrRange: "1" }, +); diff --git a/tests/cases/fourslash/renameDefaultImportDifferentName.ts b/tests/cases/fourslash/renameDefaultImportDifferentName.ts index 850807606ea19..e3f5ddc6fb4ef 100644 --- a/tests/cases/fourslash/renameDefaultImportDifferentName.ts +++ b/tests/cases/fourslash/renameDefaultImportDifferentName.ts @@ -11,12 +11,12 @@ ////let b = new [|B|](); ////b.test(); -goTo.marker("1"); -verify.occurrencesAtPositionCount(1); - const [CDef, C, B0Def, B0, B1] = test.ranges(); const bRanges = [B0, B1]; -verify.rangesAreRenameLocations([C]); -verify.rangesAreRenameLocations(bRanges); -verify.baselineFindAllReferences('1', '2') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2'] }, + { type: "findRenameLocations", markerOrRange: C }, + { type: "findRenameLocations", markerOrRange: bRanges }, + { type: "documentHighlights", markerOrRange: "1" }, +); diff --git a/tests/cases/fourslash/renameDefaultLibDontWork.ts b/tests/cases/fourslash/renameDefaultLibDontWork.ts index 87b17f6f08435..a642f3ebdcf60 100644 --- a/tests/cases/fourslash/renameDefaultLibDontWork.ts +++ b/tests/cases/fourslash/renameDefaultLibDontWork.ts @@ -8,4 +8,4 @@ //// console.log([|test|]); const [r0Def, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInComments: true, ranges }); \ No newline at end of file +verify.baselineRename(ranges[0], { findInComments: true, }); \ No newline at end of file diff --git a/tests/cases/fourslash/renameDestructuringAssignment.ts b/tests/cases/fourslash/renameDestructuringAssignment.ts index 5fc19730691e7..3f7894c105475 100644 --- a/tests/cases/fourslash/renameDestructuringAssignment.ts +++ b/tests/cases/fourslash/renameDestructuringAssignment.ts @@ -7,4 +7,4 @@ ////var x; ////([|{ [|{| "contextRangeIndex": 2 |}x|]: x } = a|]); -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentInFor.ts b/tests/cases/fourslash/renameDestructuringAssignmentInFor.ts index 1444d597ba5e5..9accf745717b5 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentInFor.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentInFor.ts @@ -16,5 +16,4 @@ verify.noErrors(); const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3, r4Def, r4] = ranges; -verify.renameLocations([r0, r4], [r0, { range: r2, suffixText: ": property1" }, r4]); -verify.renameLocations([r1, r2, r3], [r1, { range: r2, prefixText: "property1: " }, r3]); +verify.baselineRename([r0, r4, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts b/tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts index 53bd7786adb48..f0deafa50d1e6 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentInForOf.ts @@ -16,5 +16,4 @@ verify.noErrors(); const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3, r4Def, r4] = ranges; -verify.renameLocations([r0, r4], [r0, { range: r2, suffixText: ": property1" }, r4]); -verify.renameLocations([r1, r2, r3], [r1, { range: r2, prefixText: "property1: " }, r3]); +verify.baselineRename([r0, r4, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts b/tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts index 260e80ed4d0ca..db20984c80106 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentNestedInArrayLiteral.ts @@ -10,6 +10,4 @@ const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3] = ranges; -verify.renameLocations([r0, r2], [r0, r2, { range: r3, suffixText: ": property1" }]); -verify.renameLocations([r1, r3], [r1, { range: r3, prefixText: "property1: " }]); - +verify.baselineRename([r0, r2, r1, r3]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts b/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts index a275f63d0b333..265842eaf5a5f 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor.ts @@ -18,5 +18,4 @@ verify.noErrors(); const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3, r4] = ranges; -verify.renameLocations([r0, r2], [r0, r2, { range: r3, suffixText: ": primary" }]); -verify.renameLocations([r1, r3, r4], [r1, { range: r3, prefixText: "primary: " }, r4]); +verify.baselineRename([r0, r2, r1, r3, r4]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts b/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts index a275f63d0b333..265842eaf5a5f 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentNestedInFor2.ts @@ -18,5 +18,4 @@ verify.noErrors(); const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3, r4] = ranges; -verify.renameLocations([r0, r2], [r0, r2, { range: r3, suffixText: ": primary" }]); -verify.renameLocations([r1, r3, r4], [r1, { range: r3, prefixText: "primary: " }, r4]); +verify.baselineRename([r0, r2, r1, r3, r4]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts b/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts index 18161d538a095..cd598e7636287 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf.ts @@ -18,5 +18,4 @@ verify.noErrors(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3, r4] = test.ranges(); -verify.renameLocations([r0, r2], [r0, r2, { range: r3, suffixText: ": primary" }]); -verify.renameLocations([r1, r3, r4], [r1, { range: r3, prefixText: "primary: " }, r4]) +verify.baselineRename([r0, r2, r1, r3, r4]); diff --git a/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts b/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts index 90835e75b5a27..aa339a3a5c017 100644 --- a/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts +++ b/tests/cases/fourslash/renameDestructuringAssignmentNestedInForOf2.ts @@ -17,5 +17,4 @@ const ranges = test.ranges(); const [r0Def, r0, r1Def, r1,r2Def, r2, r3Def, r3, r4] = ranges; -verify.renameLocations([r0, r2], [r0, r2, { range: r3, suffixText: ": primary" }]); -verify.renameLocations([r1, r3, r4], [r1, { range: r3, prefixText: "primary: " }, r4]); +verify.baselineRename([r0, r2, r1, r3, r4]); diff --git a/tests/cases/fourslash/renameDestructuringClassProperty.ts b/tests/cases/fourslash/renameDestructuringClassProperty.ts index 365d7fb6b25b7..8dcbb111ac90d 100644 --- a/tests/cases/fourslash/renameDestructuringClassProperty.ts +++ b/tests/cases/fourslash/renameDestructuringClassProperty.ts @@ -17,6 +17,4 @@ ////} const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3, r4] = test.ranges(); -verify.renameLocations([r0, r2], [r0, { range: r1, suffixText: ": foo" }, r2, { range: r3, suffixText: ": foo" }]); -verify.renameLocations(r1, [{ range: r1, prefixText: "foo: " }]); -verify.renameLocations([r3, r4], [{ range: r3, prefixText: "foo: " }, r4]); +verify.baselineRename([r0, r2, r1, r3, r4]); diff --git a/tests/cases/fourslash/renameDestructuringDeclarationInFor.ts b/tests/cases/fourslash/renameDestructuringDeclarationInFor.ts index b1a653775ec78..97f651daf9b06 100644 --- a/tests/cases/fourslash/renameDestructuringDeclarationInFor.ts +++ b/tests/cases/fourslash/renameDestructuringDeclarationInFor.ts @@ -14,5 +14,4 @@ ////} const [r0Def, r0, r1Def, r1, r2Def, r2, r3] = test.ranges(); -verify.renameLocations([r0, r1], [r0, r1, { range: r2, suffixText: ": property1" }]); -verify.renameLocations([r2, r3], [{ range: r2, prefixText: "property1: " }, r3]); +verify.baselineRename([r0, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts b/tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts index f0c35ce8125bf..47f701df7f818 100644 --- a/tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts +++ b/tests/cases/fourslash/renameDestructuringDeclarationInForOf.ts @@ -13,5 +13,4 @@ ////} const [r0Def, r0, r1Def, r1, r2, r3Def, r3] = test.ranges(); -verify.renameLocations([r0, r3], [r0, { range: r1, suffixText: ": property1" }, r3]); -verify.renameLocations([r1, r2], [{ range: r1, prefixText: "property1: " }, r2]); +verify.baselineRename([r0, r3, r1, r2]); diff --git a/tests/cases/fourslash/renameDestructuringFunctionParameter.ts b/tests/cases/fourslash/renameDestructuringFunctionParameter.ts index faa423dac4964..b07f78495500a 100644 --- a/tests/cases/fourslash/renameDestructuringFunctionParameter.ts +++ b/tests/cases/fourslash/renameDestructuringFunctionParameter.ts @@ -5,7 +5,9 @@ ////} const [r0Def, r0, r1, r2] = test.ranges(); -// renames the local -verify.renameLocations([r0, r2], [{ range: r0, prefixText: "a: " }, { range: r2, prefixText: "a: " }]); -// renames the property -verify.renameLocations(r1, [{ range: r0, suffixText: ": a" }, r1, { range: r2, suffixText: ": a" }]); +verify.baselineRename([ + // renames the local + r0, r2, + // renames the property + r1, +]); diff --git a/tests/cases/fourslash/renameDestructuringNestedBindingElement.ts b/tests/cases/fourslash/renameDestructuringNestedBindingElement.ts index 040106a0c90a3..0b5e045c076d0 100644 --- a/tests/cases/fourslash/renameDestructuringNestedBindingElement.ts +++ b/tests/cases/fourslash/renameDestructuringNestedBindingElement.ts @@ -16,5 +16,4 @@ ////} const [r0Def, r0, r1Def, r1, r2Def, r2, r3] = test.ranges(); -verify.renameLocations([r0, r1], [r0, r1, { range: r2, suffixText: ": primary" }]); -verify.renameLocations([r2, r3], [{ range: r2, prefixText: "primary: " }, r3]); +verify.baselineRename([r0, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameForDefaultExport01.ts b/tests/cases/fourslash/renameForDefaultExport01.ts index 26697d1df1e48..2eaf9093fddab 100644 --- a/tests/cases/fourslash/renameForDefaultExport01.ts +++ b/tests/cases/fourslash/renameForDefaultExport01.ts @@ -11,4 +11,4 @@ ////var y = new [|DefaultExportedClass|]; const ranges = test.rangesByText().get("DefaultExportedClass"); -verify.renameLocations(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true, ranges }); +verify.baselineRename(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true }); diff --git a/tests/cases/fourslash/renameForDefaultExport02.ts b/tests/cases/fourslash/renameForDefaultExport02.ts index d9b172f2d2e10..486e036927d92 100644 --- a/tests/cases/fourslash/renameForDefaultExport02.ts +++ b/tests/cases/fourslash/renameForDefaultExport02.ts @@ -12,4 +12,4 @@ ////var y = /*4*/[|DefaultExportedFunction|](); const ranges = test.rangesByText().get("DefaultExportedFunction"); -verify.renameLocations(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true, ranges }); +verify.baselineRename(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true, }); diff --git a/tests/cases/fourslash/renameForDefaultExport03.ts b/tests/cases/fourslash/renameForDefaultExport03.ts index 7b67d2e450919..bf8c59376d3b3 100644 --- a/tests/cases/fourslash/renameForDefaultExport03.ts +++ b/tests/cases/fourslash/renameForDefaultExport03.ts @@ -18,4 +18,4 @@ ////}|] const ranges = test.rangesByText().get("f"); -verify.renameLocations(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true, ranges }); +verify.baselineRename(ranges.filter(r => !(r.marker && r.marker.data.inComment)), { findInComments: true, }); diff --git a/tests/cases/fourslash/renameImportAndExport.ts b/tests/cases/fourslash/renameImportAndExport.ts index 9b94d6fedda4f..1a210ff8cf5f0 100644 --- a/tests/cases/fourslash/renameImportAndExport.ts +++ b/tests/cases/fourslash/renameImportAndExport.ts @@ -4,5 +4,4 @@ ////[|export { [|{| "contextRangeIndex": 2 |}a|] };|] const [r0Def, r0, r1Def, r1] = test.ranges(); -verify.renameLocations(r0, [r0, { range: r1, suffixText: " as a" }]); -verify.renameLocations(r1, [{ range: r1, prefixText: "a as " }]); +verify.baselineRename([r0, r1]); diff --git a/tests/cases/fourslash/renameImportAndExportInDiffFiles.ts b/tests/cases/fourslash/renameImportAndExportInDiffFiles.ts index b5c31a98c5217..5a39e1cd0b4fd 100644 --- a/tests/cases/fourslash/renameImportAndExportInDiffFiles.ts +++ b/tests/cases/fourslash/renameImportAndExportInDiffFiles.ts @@ -9,7 +9,7 @@ const [r0Def, r0, r1Def, r1, r2Def, r2] = test.ranges(); -verify.renameLocations(r0, [r0, r1, { range: r2, suffixText: " as a" }]); -verify.renameLocations(r1, [{ range: r1, prefixText: "a as " }, { range: r2, suffixText: " as a" }]); -verify.renameLocations(r2, [{ range: r2, prefixText: "a as " }]); -verify.baselineFindAllReferences('1', '2', '3') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2', '3'] }, + { type: "findRenameLocations", markerOrRange: [r0, r1, r2] }, +); diff --git a/tests/cases/fourslash/renameImportAndShorthand.ts b/tests/cases/fourslash/renameImportAndShorthand.ts index 376f16c9c5be0..62c834eb3fc74 100644 --- a/tests/cases/fourslash/renameImportAndShorthand.ts +++ b/tests/cases/fourslash/renameImportAndShorthand.ts @@ -4,4 +4,4 @@ ////const bar = { [|foo|] }; const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations([r0, r1], [r0, { range: r1, prefixText: "foo: " }]); +verify.baselineRename([r0, r1]); diff --git a/tests/cases/fourslash/renameImportNamespaceAndShorthand.ts b/tests/cases/fourslash/renameImportNamespaceAndShorthand.ts index 5a3ed66e976eb..dabd8d92a9ec0 100644 --- a/tests/cases/fourslash/renameImportNamespaceAndShorthand.ts +++ b/tests/cases/fourslash/renameImportNamespaceAndShorthand.ts @@ -4,4 +4,4 @@ ////const bar = { [|foo|] }; const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations([r0, r1], [r0, { range: r1, prefixText: "foo: " }]); +verify.baselineRename([r0, r1]); diff --git a/tests/cases/fourslash/renameImportOfExportEquals.ts b/tests/cases/fourslash/renameImportOfExportEquals.ts index ac41d20f52619..d13e66f12ea98 100644 --- a/tests/cases/fourslash/renameImportOfExportEquals.ts +++ b/tests/cases/fourslash/renameImportOfExportEquals.ts @@ -21,10 +21,11 @@ const aRanges = [a0, a1]; const bRanges = [b0, b1]; const xRanges = [x0, x1]; -verify.baselineFindAllReferences('N', 'a', 'b', 'x') - -verify.renameLocations(nRanges, [N0, N1, a0, { range: a1, suffixText: " as N" }]); -verify.renameLocations(a0, [a0, { range: a1, suffixText: " as N" }]); -verify.renameLocations(a1, [{ range: a1, prefixText: "N as " }, ...bRanges]); -verify.renameLocations(bRanges, [{ range: b0, prefixText: "N as " }, b1]); -verify.rangesAreRenameLocations(xRanges); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['N', 'a', 'b', 'x'] }, + { type: "findRenameLocations", markerOrRange: nRanges }, + { type: "findRenameLocations", markerOrRange: a0 }, + { type: "findRenameLocations", markerOrRange: a1 }, + { type: "findRenameLocations", markerOrRange: bRanges }, + { type: "findRenameLocations", markerOrRange: xRanges }, +); diff --git a/tests/cases/fourslash/renameImportOfExportEquals2.ts b/tests/cases/fourslash/renameImportOfExportEquals2.ts index 9d3b553596a52..30d031dbc579f 100644 --- a/tests/cases/fourslash/renameImportOfExportEquals2.ts +++ b/tests/cases/fourslash/renameImportOfExportEquals2.ts @@ -16,5 +16,7 @@ ////} verify.noErrors(); -verify.rangesWithSameTextAreRenameLocations("N", "O", "P", "Q"); -verify.baselineFindAllReferences("N", "O", "P", "Q"); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ["N", "O", "P", "Q"] }, + { type: "findRenameLocations", rangeText: ["N", "O", "P", "Q"] }, +); diff --git a/tests/cases/fourslash/renameImportOfReExport.ts b/tests/cases/fourslash/renameImportOfReExport.ts index 1e73e83042b36..a7ee2e2dc26f3 100644 --- a/tests/cases/fourslash/renameImportOfReExport.ts +++ b/tests/cases/fourslash/renameImportOfReExport.ts @@ -17,8 +17,9 @@ verify.noErrors(); const ranges = test.ranges(); const [r0Def, r0, r1Def, r1, r2Def, r2, r3] = ranges; const importRanges = [r2, r3]; -verify.renameLocations(r0, [r0, { range: r1, suffixText: " as C" }]); //, r1 -verify.renameLocations(r1, [{ range: r1, prefixText: "C as " }, r2, r3]); -verify.renameLocations(importRanges, [{ range: r2, prefixText: "C as " }, r3]); - -verify.baselineFindAllReferences('1', '2', '3') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2', '3'] }, + { type: "findRenameLocations", markerOrRange: r0 }, + { type: "findRenameLocations", markerOrRange: r1 }, + { type: "findRenameLocations", markerOrRange: importRanges }, +); diff --git a/tests/cases/fourslash/renameImportOfReExport2.ts b/tests/cases/fourslash/renameImportOfReExport2.ts index 0b84dbae602bd..c27d695253fc9 100644 --- a/tests/cases/fourslash/renameImportOfReExport2.ts +++ b/tests/cases/fourslash/renameImportOfReExport2.ts @@ -18,8 +18,9 @@ const cRanges = ranges.get("C"); const dRanges = ranges.get("D"); const [d0, d1, d2] = dRanges; -verify.rangesAreRenameLocations(cRanges); -verify.renameLocations(cRanges[1], cRanges); -verify.renameLocations(d0, dRanges); -verify.renameLocations([d1, d2], [{ range: d1, prefixText: "D as " }, d2]); -verify.baselineFindAllReferences('1', '2', '3') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2', '3'] }, + { type: "findRenameLocations", markerOrRange: cRanges }, + { type: "findRenameLocations", markerOrRange: d0 }, + { type: "findRenameLocations", markerOrRange: [d1, d2] }, +); diff --git a/tests/cases/fourslash/renameImportRequire.ts b/tests/cases/fourslash/renameImportRequire.ts index fc41d5a95ac9d..bc3cdeb7a3d04 100644 --- a/tests/cases/fourslash/renameImportRequire.ts +++ b/tests/cases/fourslash/renameImportRequire.ts @@ -11,7 +11,4 @@ ////[|export { [|{| "contextRangeIndex": 8 |}e|] };|] const [r0Def, r0, r1, r2, r3Def, r3, r4Def, r4, r5Def, r5] = test.ranges(); -verify.renameLocations([r0, r1, r2], [r0, r1, { range: r2, prefixText: "e: " }, { range: r3, suffixText: " as e" }]); -verify.renameLocations(r3, [{ range: r3, prefixText: "e as " }, r4, { range: r5, suffixText: " as e" }]); -verify.renameLocations(r4, [{ range: r4, prefixText: "e as " }, { range: r5, suffixText: " as e" }]); -verify.renameLocations(r5, [{ range: r5, prefixText: "e as " }]); +verify.baselineRename([r0, r1, r2, r3, r4, r5]); diff --git a/tests/cases/fourslash/renameInheritedProperties1.ts b/tests/cases/fourslash/renameInheritedProperties1.ts index 5f52732d65f97..fbe9ae1992b79 100644 --- a/tests/cases/fourslash/renameInheritedProperties1.ts +++ b/tests/cases/fourslash/renameInheritedProperties1.ts @@ -7,4 +7,4 @@ //// var v: class1; //// v.[|propName|]; -verify.rangesWithSameTextAreRenameLocations("propName"); +verify.baselineRenameAtRangesWithText("propName"); diff --git a/tests/cases/fourslash/renameInheritedProperties2.ts b/tests/cases/fourslash/renameInheritedProperties2.ts index 0dd3435a807fe..cc0e1bbf6f46c 100644 --- a/tests/cases/fourslash/renameInheritedProperties2.ts +++ b/tests/cases/fourslash/renameInheritedProperties2.ts @@ -7,4 +7,4 @@ //// var v: class1; //// v.[|doStuff|](); -verify.rangesWithSameTextAreRenameLocations("doStuff"); +verify.baselineRenameAtRangesWithText("doStuff"); diff --git a/tests/cases/fourslash/renameInheritedProperties3.ts b/tests/cases/fourslash/renameInheritedProperties3.ts index ecdab6c39016b..d7d1bbd6a5a4b 100644 --- a/tests/cases/fourslash/renameInheritedProperties3.ts +++ b/tests/cases/fourslash/renameInheritedProperties3.ts @@ -7,4 +7,4 @@ //// var v: interface1; //// v.[|propName|]; -verify.rangesWithSameTextAreRenameLocations("propName"); +verify.baselineRenameAtRangesWithText("propName"); diff --git a/tests/cases/fourslash/renameInheritedProperties4.ts b/tests/cases/fourslash/renameInheritedProperties4.ts index b16eaa55d1b23..0707dcc6b7574 100644 --- a/tests/cases/fourslash/renameInheritedProperties4.ts +++ b/tests/cases/fourslash/renameInheritedProperties4.ts @@ -7,4 +7,4 @@ //// var v: interface1; //// v.[|doStuff|](); -verify.rangesWithSameTextAreRenameLocations("doStuff"); +verify.baselineRenameAtRangesWithText("doStuff"); diff --git a/tests/cases/fourslash/renameInheritedProperties5.ts b/tests/cases/fourslash/renameInheritedProperties5.ts index 430744110f77e..57db999a65a27 100644 --- a/tests/cases/fourslash/renameInheritedProperties5.ts +++ b/tests/cases/fourslash/renameInheritedProperties5.ts @@ -9,5 +9,5 @@ //// var d: D; //// d.[|propD|]; -verify.rangesWithSameTextAreRenameLocations("propD"); +verify.baselineRenameAtRangesWithText("propD"); diff --git a/tests/cases/fourslash/renameInheritedProperties6.ts b/tests/cases/fourslash/renameInheritedProperties6.ts index 31f28fbbd336d..1cfec3fdc5220 100644 --- a/tests/cases/fourslash/renameInheritedProperties6.ts +++ b/tests/cases/fourslash/renameInheritedProperties6.ts @@ -9,4 +9,4 @@ //// var d: D; //// d.[|propC|]; -verify.rangesWithSameTextAreRenameLocations("propC"); +verify.baselineRenameAtRangesWithText("propC"); diff --git a/tests/cases/fourslash/renameInheritedProperties7.ts b/tests/cases/fourslash/renameInheritedProperties7.ts index 02bdae3132989..0745392c9b31a 100644 --- a/tests/cases/fourslash/renameInheritedProperties7.ts +++ b/tests/cases/fourslash/renameInheritedProperties7.ts @@ -11,4 +11,4 @@ //// var c: C; //// c.[|prop1|]; -verify.rangesWithSameTextAreRenameLocations("prop1"); +verify.baselineRenameAtRangesWithText("prop1"); diff --git a/tests/cases/fourslash/renameInheritedProperties8.ts b/tests/cases/fourslash/renameInheritedProperties8.ts index 2113ec92db558..d1e0ec5c794fc 100644 --- a/tests/cases/fourslash/renameInheritedProperties8.ts +++ b/tests/cases/fourslash/renameInheritedProperties8.ts @@ -11,4 +11,4 @@ //// var c: C; //// c.[|prop1|]; -verify.rangesWithSameTextAreRenameLocations("prop1"); +verify.baselineRenameAtRangesWithText("prop1"); diff --git a/tests/cases/fourslash/renameJsExports01.ts b/tests/cases/fourslash/renameJsExports01.ts index 263d838eba261..425df3781ee4e 100644 --- a/tests/cases/fourslash/renameJsExports01.ts +++ b/tests/cases/fourslash/renameJsExports01.ts @@ -8,5 +8,7 @@ ////var mod = require('./a'); ////var t = mod./*1*/[|area|](10); -verify.rangesWithSameTextAreRenameLocations("area"); -verify.baselineFindAllReferences('1') +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: '1' }, + { type: "findRenameLocations", rangeText: "area" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/renameJsPropertyAssignment.ts b/tests/cases/fourslash/renameJsPropertyAssignment.ts index 5db313ad5ab1c..7447128f9a14a 100644 --- a/tests/cases/fourslash/renameJsPropertyAssignment.ts +++ b/tests/cases/fourslash/renameJsPropertyAssignment.ts @@ -7,4 +7,4 @@ ////[|bar.[|{| "contextRangeIndex": 0 |}foo|] = "foo";|] ////console.log(bar.[|foo|]); -verify.rangesWithSameTextAreRenameLocations("foo"); +verify.baselineRenameAtRangesWithText("foo"); diff --git a/tests/cases/fourslash/renameJsPropertyAssignment2.ts b/tests/cases/fourslash/renameJsPropertyAssignment2.ts index 9bdc71f4713d0..5ee357032eb6a 100644 --- a/tests/cases/fourslash/renameJsPropertyAssignment2.ts +++ b/tests/cases/fourslash/renameJsPropertyAssignment2.ts @@ -7,4 +7,4 @@ ////[|Minimatch.[|{| "contextRangeIndex": 0 |}staticProperty|] = "string";|] ////console.log(Minimatch.[|staticProperty|]); -verify.rangesWithSameTextAreRenameLocations("staticProperty"); +verify.baselineRenameAtRangesWithText("staticProperty"); diff --git a/tests/cases/fourslash/renameJsPropertyAssignment3.ts b/tests/cases/fourslash/renameJsPropertyAssignment3.ts index 0d32cf5575233..dc757e420c416 100644 --- a/tests/cases/fourslash/renameJsPropertyAssignment3.ts +++ b/tests/cases/fourslash/renameJsPropertyAssignment3.ts @@ -7,4 +7,4 @@ ////[|C.[|{| "contextRangeIndex": 0 |}staticProperty|] = "string";|] ////console.log(C.[|staticProperty|]); -verify.rangesWithSameTextAreRenameLocations("staticProperty"); +verify.baselineRenameAtRangesWithText("staticProperty"); diff --git a/tests/cases/fourslash/renameJsPrototypeProperty01.ts b/tests/cases/fourslash/renameJsPrototypeProperty01.ts index 8e37e6b88bea8..cf30b3b7eafe4 100644 --- a/tests/cases/fourslash/renameJsPrototypeProperty01.ts +++ b/tests/cases/fourslash/renameJsPrototypeProperty01.ts @@ -8,4 +8,4 @@ ////var t = new bar(); ////[|t.[|{| "contextRangeIndex": 2 |}x|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameJsPrototypeProperty02.ts b/tests/cases/fourslash/renameJsPrototypeProperty02.ts index 8e37e6b88bea8..cf30b3b7eafe4 100644 --- a/tests/cases/fourslash/renameJsPrototypeProperty02.ts +++ b/tests/cases/fourslash/renameJsPrototypeProperty02.ts @@ -8,4 +8,4 @@ ////var t = new bar(); ////[|t.[|{| "contextRangeIndex": 2 |}x|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameJsSpecialAssignmentRhs1.ts b/tests/cases/fourslash/renameJsSpecialAssignmentRhs1.ts index 013cfe34cd563..822594739bad9 100644 --- a/tests/cases/fourslash/renameJsSpecialAssignmentRhs1.ts +++ b/tests/cases/fourslash/renameJsSpecialAssignmentRhs1.ts @@ -10,4 +10,4 @@ //// } ////}; -verify.rangesAreRenameLocations(); +verify.baselineRename(); diff --git a/tests/cases/fourslash/renameJsSpecialAssignmentRhs2.ts b/tests/cases/fourslash/renameJsSpecialAssignmentRhs2.ts index 013cfe34cd563..822594739bad9 100644 --- a/tests/cases/fourslash/renameJsSpecialAssignmentRhs2.ts +++ b/tests/cases/fourslash/renameJsSpecialAssignmentRhs2.ts @@ -10,4 +10,4 @@ //// } ////}; -verify.rangesAreRenameLocations(); +verify.baselineRename(); diff --git a/tests/cases/fourslash/renameJsThisProperty01.ts b/tests/cases/fourslash/renameJsThisProperty01.ts index de42aa6be0380..f8b4e6ad90b1c 100644 --- a/tests/cases/fourslash/renameJsThisProperty01.ts +++ b/tests/cases/fourslash/renameJsThisProperty01.ts @@ -8,4 +8,4 @@ ////var t = new bar(); ////[|t.[|{| "contextRangeIndex": 2 |}x|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameJsThisProperty03.ts b/tests/cases/fourslash/renameJsThisProperty03.ts index c9891aef81ff9..bdb3f38d860b2 100644 --- a/tests/cases/fourslash/renameJsThisProperty03.ts +++ b/tests/cases/fourslash/renameJsThisProperty03.ts @@ -10,4 +10,4 @@ ////var t = new C(12); ////[|t.[|{| "contextRangeIndex": 2 |}x|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("x"); +verify.baselineRenameAtRangesWithText("x"); diff --git a/tests/cases/fourslash/renameJsThisProperty05.ts b/tests/cases/fourslash/renameJsThisProperty05.ts index b9d36f164a84f..f13f9e46ac97e 100644 --- a/tests/cases/fourslash/renameJsThisProperty05.ts +++ b/tests/cases/fourslash/renameJsThisProperty05.ts @@ -11,4 +11,4 @@ ////var t = new C(12); ////[|t.[|{| "contextRangeIndex": 2 |}z|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("z"); +verify.baselineRenameAtRangesWithText("z"); diff --git a/tests/cases/fourslash/renameJsThisProperty06.ts b/tests/cases/fourslash/renameJsThisProperty06.ts index de73d27180d5d..361c7333ebb41 100644 --- a/tests/cases/fourslash/renameJsThisProperty06.ts +++ b/tests/cases/fourslash/renameJsThisProperty06.ts @@ -11,4 +11,4 @@ ////var t = new C(12); ////[|t.[|{| "contextRangeIndex": 2 |}z|] = 11;|] -verify.rangesWithSameTextAreRenameLocations("z"); +verify.baselineRenameAtRangesWithText("z"); diff --git a/tests/cases/fourslash/renameLocationsForClassExpression01.ts b/tests/cases/fourslash/renameLocationsForClassExpression01.ts index b7d8258b3870d..f3420ae1edbad 100644 --- a/tests/cases/fourslash/renameLocationsForClassExpression01.ts +++ b/tests/cases/fourslash/renameLocationsForClassExpression01.ts @@ -20,4 +20,4 @@ ////} ////var z = class Foo {} -verify.rangesWithSameTextAreRenameLocations("Foo"); +verify.baselineRenameAtRangesWithText("Foo"); diff --git a/tests/cases/fourslash/renameLocationsForFunctionExpression01.ts b/tests/cases/fourslash/renameLocationsForFunctionExpression01.ts index 976637271ae5b..2f5620a66f208 100644 --- a/tests/cases/fourslash/renameLocationsForFunctionExpression01.ts +++ b/tests/cases/fourslash/renameLocationsForFunctionExpression01.ts @@ -4,4 +4,4 @@ //// [|f|]([|f|], g); ////}|] -verify.rangesWithSameTextAreRenameLocations("f"); +verify.baselineRenameAtRangesWithText("f"); diff --git a/tests/cases/fourslash/renameLocationsForFunctionExpression02.ts b/tests/cases/fourslash/renameLocationsForFunctionExpression02.ts index e2eb6c02a3d51..91ac2c3f75955 100644 --- a/tests/cases/fourslash/renameLocationsForFunctionExpression02.ts +++ b/tests/cases/fourslash/renameLocationsForFunctionExpression02.ts @@ -10,4 +10,4 @@ //// let foo = () => [|f|]([|f|], g); ////}|] -verify.rangesWithSameTextAreRenameLocations("f"); +verify.baselineRenameAtRangesWithText("f"); diff --git a/tests/cases/fourslash/renameModifiers.ts b/tests/cases/fourslash/renameModifiers.ts index ab2258a1d08cf..46b272fb09207 100644 --- a/tests/cases/fourslash/renameModifiers.ts +++ b/tests/cases/fourslash/renameModifiers.ts @@ -23,12 +23,14 @@ const [ functionDef, asyncKeyword, functionName, class2Def, exportKeyword, defaultKeyword, class2Name, ] = test.ranges(); -verify.renameLocations([declareKeyword, abstractKeyword], [{ range: class1Name }]); -verify.renameLocations([staticKeyword], [{ range: aName }]); -verify.renameLocations([readonlyKeyword], [{ range: bName }]); -verify.renameLocations([publicKeyword], [{ range: cName }]); -verify.renameLocations([protectedKeyword], [{ range: dName }]); -verify.renameLocations([privateKeyword], [{ range: eName }]); -verify.renameLocations([constKeyword], [{ range: enumName }]); -verify.renameLocations([asyncKeyword], [{ range: functionName }]); -verify.renameLocations([exportKeyword, defaultKeyword], [{ range: class2Name }]); +verify.baselineRename([ + declareKeyword, abstractKeyword, + staticKeyword, + readonlyKeyword, + publicKeyword, + protectedKeyword, + privateKeyword, + constKeyword, + asyncKeyword, + exportKeyword, defaultKeyword, +]); diff --git a/tests/cases/fourslash/renameModuleExportsProperties1.ts b/tests/cases/fourslash/renameModuleExportsProperties1.ts index 29d74bde6cbfd..5d30fae33cc61 100644 --- a/tests/cases/fourslash/renameModuleExportsProperties1.ts +++ b/tests/cases/fourslash/renameModuleExportsProperties1.ts @@ -4,5 +4,4 @@ ////module.exports = { [|A|] } const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations(r0, { ranges: [r0, { range: r1, prefixText: "A: " }], providePrefixAndSuffixTextForRename: true }); -verify.renameLocations(r1, { ranges: [r0, { range: r1, prefixText: "A: " }], providePrefixAndSuffixTextForRename: true }); +verify.baselineRename([r0, r1], { providePrefixAndSuffixTextForRename: true }); \ No newline at end of file diff --git a/tests/cases/fourslash/renameModuleExportsProperties2.ts b/tests/cases/fourslash/renameModuleExportsProperties2.ts index fa2c31029e607..78d9498d07071 100644 --- a/tests/cases/fourslash/renameModuleExportsProperties2.ts +++ b/tests/cases/fourslash/renameModuleExportsProperties2.ts @@ -4,5 +4,4 @@ ////module.exports = { B: [|A|] } const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations(r0, [r0, r1]); -verify.renameLocations(r1, [r0, r1]); +verify.baselineRename([r0, r1]); \ No newline at end of file diff --git a/tests/cases/fourslash/renameModuleExportsProperties3.ts b/tests/cases/fourslash/renameModuleExportsProperties3.ts index 2f163c55f0f10..1e8f3fc3d3bae 100644 --- a/tests/cases/fourslash/renameModuleExportsProperties3.ts +++ b/tests/cases/fourslash/renameModuleExportsProperties3.ts @@ -6,5 +6,4 @@ ////module.exports = { [|A|] } const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations(r0, { ranges: [r0, { range: r1, prefixText: "A: " }], providePrefixAndSuffixTextForRename: true }); -verify.renameLocations(r1, { ranges: [r0, { range: r1, prefixText: "A: " }], providePrefixAndSuffixTextForRename: true }); +verify.baselineRename([r0, r1], { providePrefixAndSuffixTextForRename: true }); \ No newline at end of file diff --git a/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts b/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts index 079085b5875a8..5e5cae3838a80 100644 --- a/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts +++ b/tests/cases/fourslash/renameObjectBindingElementPropertyName01.ts @@ -9,4 +9,4 @@ ////[|var { [|{| "contextRangeIndex": 2 |}property1|]: prop1 } = foo;|] -verify.rangesWithSameTextAreRenameLocations("property1"); +verify.baselineRenameAtRangesWithText("property1"); diff --git a/tests/cases/fourslash/renameObjectSpread.ts b/tests/cases/fourslash/renameObjectSpread.ts index 945d7613bfc39..c593793c727e5 100644 --- a/tests/cases/fourslash/renameObjectSpread.ts +++ b/tests/cases/fourslash/renameObjectSpread.ts @@ -8,9 +8,11 @@ ////a12.[|a|]; const [r0Def, r0, r1Def, r1, r2] = test.ranges(); -// A1 unions with A2, so rename A1.a and a12.a -verify.renameLocations(r0, [r0, r2]); -// A1 unions with A2, so rename A2.a and a12.a -verify.renameLocations(r1, [r1, r2]); -// a12.a unions A1.a and A2.a, so rename A1.a, A2.a and a12.a -verify.renameLocations(r2, [r0, r1, r2]); +verify.baselineRename([ + // A1 unions with A2, so rename A1.a and a12.a + r0, + // A1 unions with A2, so rename A2.a and a12.a + r1, + // a12.a unions A1.a and A2.a, so rename A1.a, A2.a and a12.a + r2, +]); diff --git a/tests/cases/fourslash/renameObjectSpreadAssignment.ts b/tests/cases/fourslash/renameObjectSpreadAssignment.ts index 4ff66fef99ec2..4dee9f18bebb0 100644 --- a/tests/cases/fourslash/renameObjectSpreadAssignment.ts +++ b/tests/cases/fourslash/renameObjectSpreadAssignment.ts @@ -7,5 +7,4 @@ ////let a12 = { ...[|a1|], ...[|a2|] }; const [r0Def, r0, r1Def, r1, r2, r3] = test.ranges(); -verify.rangesAreRenameLocations([r0, r2]); -verify.rangesAreRenameLocations([r1, r3]); +verify.baselineRename([r0, r2, r1, r3]); diff --git a/tests/cases/fourslash/renameParameterPropertyDeclaration1.ts b/tests/cases/fourslash/renameParameterPropertyDeclaration1.ts index 08b9b5456d62b..c1063fc98e6c7 100644 --- a/tests/cases/fourslash/renameParameterPropertyDeclaration1.ts +++ b/tests/cases/fourslash/renameParameterPropertyDeclaration1.ts @@ -7,4 +7,4 @@ //// } //// } -verify.rangesWithSameTextAreRenameLocations("privateParam"); +verify.baselineRenameAtRangesWithText("privateParam"); diff --git a/tests/cases/fourslash/renameParameterPropertyDeclaration2.ts b/tests/cases/fourslash/renameParameterPropertyDeclaration2.ts index 0fc326cd11605..f2dc8bbbe9752 100644 --- a/tests/cases/fourslash/renameParameterPropertyDeclaration2.ts +++ b/tests/cases/fourslash/renameParameterPropertyDeclaration2.ts @@ -7,4 +7,4 @@ //// } //// } -verify.rangesWithSameTextAreRenameLocations("publicParam"); +verify.baselineRenameAtRangesWithText("publicParam"); diff --git a/tests/cases/fourslash/renameParameterPropertyDeclaration3.ts b/tests/cases/fourslash/renameParameterPropertyDeclaration3.ts index 127b735048772..cd98667e09fa3 100644 --- a/tests/cases/fourslash/renameParameterPropertyDeclaration3.ts +++ b/tests/cases/fourslash/renameParameterPropertyDeclaration3.ts @@ -7,4 +7,4 @@ //// } //// } -verify.rangesWithSameTextAreRenameLocations("protectedParam"); +verify.baselineRenameAtRangesWithText("protectedParam"); diff --git a/tests/cases/fourslash/renameParameterPropertyDeclaration4.ts b/tests/cases/fourslash/renameParameterPropertyDeclaration4.ts index ce2b26a2fc8f8..132bb264fe30b 100644 --- a/tests/cases/fourslash/renameParameterPropertyDeclaration4.ts +++ b/tests/cases/fourslash/renameParameterPropertyDeclaration4.ts @@ -7,4 +7,4 @@ //// } const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations([r0, r1], [{ range: r0, prefixText: "protectedParam: " }, r1]); +verify.baselineRename([r0, r1]); diff --git a/tests/cases/fourslash/renameParameterPropertyDeclaration5.ts b/tests/cases/fourslash/renameParameterPropertyDeclaration5.ts index 4bd9cd137bcef..f3aabdbb325c7 100644 --- a/tests/cases/fourslash/renameParameterPropertyDeclaration5.ts +++ b/tests/cases/fourslash/renameParameterPropertyDeclaration5.ts @@ -6,4 +6,4 @@ //// } //// } -verify.rangesWithSameTextAreRenameLocations("protectedParam"); +verify.baselineRenameAtRangesWithText("protectedParam"); diff --git a/tests/cases/fourslash/renamePrivateAccessor.ts b/tests/cases/fourslash/renamePrivateAccessor.ts index 46a5cd39828d7..df1589990f037 100644 --- a/tests/cases/fourslash/renamePrivateAccessor.ts +++ b/tests/cases/fourslash/renamePrivateAccessor.ts @@ -9,6 +9,4 @@ ////} const ranges = test.rangesByText().get("#foo"); -verify.renameLocations(ranges, { - ranges -}); +verify.baselineRename(ranges); diff --git a/tests/cases/fourslash/renamePrivateFields1.ts b/tests/cases/fourslash/renamePrivateFields1.ts index 1c6e7907981d5..654b0e232be7d 100644 --- a/tests/cases/fourslash/renamePrivateFields1.ts +++ b/tests/cases/fourslash/renamePrivateFields1.ts @@ -8,4 +8,4 @@ //// } ////} -verify.rangesWithSameTextAreRenameLocations("#foo"); +verify.baselineRenameAtRangesWithText("#foo"); diff --git a/tests/cases/fourslash/renamePrivateMethod.ts b/tests/cases/fourslash/renamePrivateMethod.ts index d0b7ba0aa9d51..2a7b2089cde36 100644 --- a/tests/cases/fourslash/renamePrivateMethod.ts +++ b/tests/cases/fourslash/renamePrivateMethod.ts @@ -8,6 +8,4 @@ ////} const ranges = test.rangesByText().get("#foo"); -verify.renameLocations(ranges, { - ranges -}); +verify.baselineRename(ranges); diff --git a/tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts b/tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts index 7967533faf009..03ecf329d6066 100644 --- a/tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts +++ b/tests/cases/fourslash/renamePropertyAccessExpressionHeritageClause.ts @@ -7,4 +7,4 @@ //// class C extends (foo()).[|B|] {} //// class C1 extends foo().[|B|] {} -verify.rangesWithSameTextAreRenameLocations("B"); \ No newline at end of file +verify.baselineRenameAtRangesWithText("B"); \ No newline at end of file diff --git a/tests/cases/fourslash/renameReExportDefault.ts b/tests/cases/fourslash/renameReExportDefault.ts index df544f6e87d53..cf8b7af3861ee 100644 --- a/tests/cases/fourslash/renameReExportDefault.ts +++ b/tests/cases/fourslash/renameReExportDefault.ts @@ -13,7 +13,4 @@ ////[|export default [|{| "contextRangeIndex": 8 |}b|];|] const [r0Def, r0, r1Def, r1, r2Def, r2, r3Def, r3, r4Def, r4] = test.ranges(); -verify.renameLocations(r0, [r0]); -verify.renameLocations(r1, [r1]); -verify.renameLocations(r2, [r2]); -verify.renameLocations([r3, r4], [r0, r1, r2, r3, r4]); +verify.baselineRename([r0, r1, r2, r3, r4]); \ No newline at end of file diff --git a/tests/cases/fourslash/renameRest.ts b/tests/cases/fourslash/renameRest.ts index a1bf56c737ecf..213ea06ad6f44 100644 --- a/tests/cases/fourslash/renameRest.ts +++ b/tests/cases/fourslash/renameRest.ts @@ -8,4 +8,4 @@ ////var { x, ...rest } = t; ////rest.[|parent|]; -verify.rangesWithSameTextAreRenameLocations("parent"); +verify.baselineRenameAtRangesWithText("parent"); diff --git a/tests/cases/fourslash/renameRestBindingElement.ts b/tests/cases/fourslash/renameRestBindingElement.ts index 59e58c37f4a27..34bcd282eb166 100644 --- a/tests/cases/fourslash/renameRestBindingElement.ts +++ b/tests/cases/fourslash/renameRestBindingElement.ts @@ -10,4 +10,4 @@ ////} const [r0Def, r0, r1] = test.ranges(); -verify.renameLocations(r0, { ranges: [r0, r1], providePrefixAndSuffixTextForRename: true }); +verify.baselineRename(r0, { providePrefixAndSuffixTextForRename: true }); diff --git a/tests/cases/fourslash/renameStringLiteralOk.ts b/tests/cases/fourslash/renameStringLiteralOk.ts index 7b8bdc5a18f15..fca07b5dbcf7c 100644 --- a/tests/cases/fourslash/renameStringLiteralOk.ts +++ b/tests/cases/fourslash/renameStringLiteralOk.ts @@ -8,4 +8,4 @@ //// f.f = '[|foo|]' //// f.f = `[|foo|]` -verify.rangesWithSameTextAreRenameLocations("foo"); +verify.baselineRenameAtRangesWithText("foo"); diff --git a/tests/cases/fourslash/renameStringLiteralOk1.ts b/tests/cases/fourslash/renameStringLiteralOk1.ts index 9d3cf55af7282..daeabd44a6cfe 100644 --- a/tests/cases/fourslash/renameStringLiteralOk1.ts +++ b/tests/cases/fourslash/renameStringLiteralOk1.ts @@ -8,4 +8,4 @@ //// declare const ff: Foo //// ff.f = '[|foo|]' -verify.rangesWithSameTextAreRenameLocations("foo"); +verify.baselineRenameAtRangesWithText("foo"); diff --git a/tests/cases/fourslash/renameStringLiteralTypes1.ts b/tests/cases/fourslash/renameStringLiteralTypes1.ts index 294d0fc260893..319de3312a1be 100644 --- a/tests/cases/fourslash/renameStringLiteralTypes1.ts +++ b/tests/cases/fourslash/renameStringLiteralTypes1.ts @@ -11,4 +11,4 @@ //// ////animate({ deltaX: 100, deltaY: 100, easing: "[|ease-in-out|]" }); -verify.rangesWithSameTextAreRenameLocations("ease-in-out"); +verify.baselineRenameAtRangesWithText("ease-in-out"); diff --git a/tests/cases/fourslash/renameStringLiteralTypes2.ts b/tests/cases/fourslash/renameStringLiteralTypes2.ts index 9613d538d91a3..6b12c975b3e26 100644 --- a/tests/cases/fourslash/renameStringLiteralTypes2.ts +++ b/tests/cases/fourslash/renameStringLiteralTypes2.ts @@ -19,4 +19,4 @@ //// } ////} -verify.rangesWithSameTextAreRenameLocations("a"); +verify.baselineRenameAtRangesWithText("a"); diff --git a/tests/cases/fourslash/renameStringLiteralTypes3.ts b/tests/cases/fourslash/renameStringLiteralTypes3.ts index 569e22e249e80..b035b955446fc 100644 --- a/tests/cases/fourslash/renameStringLiteralTypes3.ts +++ b/tests/cases/fourslash/renameStringLiteralTypes3.ts @@ -14,4 +14,4 @@ //// } ////} -verify.rangesWithSameTextAreRenameLocations("a"); +verify.baselineRenameAtRangesWithText("a"); diff --git a/tests/cases/fourslash/renameStringPropertyNames.ts b/tests/cases/fourslash/renameStringPropertyNames.ts index 5c7d761422e17..ddc8dd4910691 100644 --- a/tests/cases/fourslash/renameStringPropertyNames.ts +++ b/tests/cases/fourslash/renameStringPropertyNames.ts @@ -12,4 +12,4 @@ ////o['[|prop|]']; ////o.[|prop|]; -verify.rangesWithSameTextAreRenameLocations("prop"); +verify.baselineRenameAtRangesWithText("prop"); diff --git a/tests/cases/fourslash/renameTemplateLiteralsComputedProperties.ts b/tests/cases/fourslash/renameTemplateLiteralsComputedProperties.ts index f6353d1a3d7ac..d6c183a5e3ac8 100644 --- a/tests/cases/fourslash/renameTemplateLiteralsComputedProperties.ts +++ b/tests/cases/fourslash/renameTemplateLiteralsComputedProperties.ts @@ -38,5 +38,4 @@ ////obj.[|bool|]; ////obj[`[|bool|]`]; -verify.rangesWithSameTextAreRenameLocations("num"); -verify.rangesWithSameTextAreRenameLocations("bool"); +verify.baselineRenameAtRangesWithText(["num", "bool"]); diff --git a/tests/cases/fourslash/renameTemplateLiteralsDefinePropertyJs.ts b/tests/cases/fourslash/renameTemplateLiteralsDefinePropertyJs.ts index ade3a8bf0be60..d2c0336084a90 100644 --- a/tests/cases/fourslash/renameTemplateLiteralsDefinePropertyJs.ts +++ b/tests/cases/fourslash/renameTemplateLiteralsDefinePropertyJs.ts @@ -15,4 +15,4 @@ ////obj["[|prop|]"]; ////obj[`[|prop|]`]; -verify.rangesWithSameTextAreRenameLocations('prop'); +verify.baselineRenameAtRangesWithText('prop'); diff --git a/tests/cases/fourslash/renameThis.ts b/tests/cases/fourslash/renameThis.ts index b26a02553017b..c3e438e08aba7 100644 --- a/tests/cases/fourslash/renameThis.ts +++ b/tests/cases/fourslash/renameThis.ts @@ -7,11 +7,10 @@ ////const _ = { [|[|{| "contextRangeIndex": 2 |}this|]: 0|] }.[|this|]; const [r0, r1, r2Def, r2, r3] = test.ranges() -verify.rangesAreRenameLocations([r0, r1]); // Trying to rename a non-parameter 'this' should fail goTo.marker(); verify.renameInfoFailed("You cannot rename this element."); -verify.rangesAreRenameLocations([r2, r3]); +verify.baselineRename([r0, r1, r2, r3]); diff --git a/tests/cases/fourslash/renameUMDModuleAlias1.ts b/tests/cases/fourslash/renameUMDModuleAlias1.ts index 04bc8a15489a1..4ce91a02a9f1f 100644 --- a/tests/cases/fourslash/renameUMDModuleAlias1.ts +++ b/tests/cases/fourslash/renameUMDModuleAlias1.ts @@ -10,4 +10,4 @@ //// /// //// [|myLib|].doThing(); -verify.rangesWithSameTextAreRenameLocations("myLib"); +verify.baselineRenameAtRangesWithText("myLib"); diff --git a/tests/cases/fourslash/scopeOfUnionProperties.ts b/tests/cases/fourslash/scopeOfUnionProperties.ts index ec2fe3a9ac5a4..af10babb40368 100644 --- a/tests/cases/fourslash/scopeOfUnionProperties.ts +++ b/tests/cases/fourslash/scopeOfUnionProperties.ts @@ -3,5 +3,4 @@ ////function f(s: string | number) { //// s.constr/*1*/uctor ////} -goTo.marker("1") -verify.occurrencesAtPositionCount(1); +verify.baselineDocumentHighlights("1"); diff --git a/tests/cases/fourslash/server/declarationMapGoToDefinition.ts b/tests/cases/fourslash/server/declarationMapGoToDefinition.ts index 15f49b1e1b913..f051ffed97fdd 100644 --- a/tests/cases/fourslash/server/declarationMapGoToDefinition.ts +++ b/tests/cases/fourslash/server/declarationMapGoToDefinition.ts @@ -37,4 +37,4 @@ ////const instance = new mod.Foo(); ////instance.[|/*1*/methodName|]({member: 12}); -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInline.ts b/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInline.ts index 8ad0dad42986c..fc70c13b4ad11 100644 --- a/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInline.ts +++ b/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInline.ts @@ -76,9 +76,9 @@ goTo.file("/index.ts"); verify.getEmitOutput(["/dist/index.js", "/dist/index.d.ts.map", "/dist/index.d.ts"]); -verify.goToDefinition("1", "2"); // getDefinitionAndBoundSpan -verify.goToType("1", "SomeType"); // getTypeDefinitionAtPosition -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAtPosition -goTo.implementation(); // getImplementationAtPosition -verify.caretAtMarker("2"); \ No newline at end of file +verify.baselineCommands( + { type: "goToImplementation", markerOrRange: "1" }, // getImplementationAtPosition + { type: "goToType", markerOrRange: "1" }, // getTypeDefinitionAtPosition, + { type: "goToDefinition", markerOrRange: "1" }, // getDefinitionAndBoundSpan + { type: "getDefinitionAtPosition", markerOrRange: "1" }, // getDefinitionAtPosition +); diff --git a/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInlineSources.ts b/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInlineSources.ts index bf7cf38f6a322..238704b39799d 100644 --- a/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInlineSources.ts +++ b/tests/cases/fourslash/server/declarationMapsEnableMapping_NoInlineSources.ts @@ -77,9 +77,9 @@ goTo.file("/index.ts"); verify.getEmitOutput(["/dist/index.js", "/dist/index.d.ts.map", "/dist/index.d.ts"]); -verify.goToDefinition("1", "2"); // getDefinitionAndBoundSpan -verify.goToType("1", "SomeType"); // getTypeDefinitionAtPosition -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAtPosition -goTo.implementation(); // getImplementationAtPosition -verify.caretAtMarker("2"); \ No newline at end of file +verify.baselineCommands( + { type: "goToImplementation", markerOrRange: "1" }, // getImplementationAtPosition + { type: "goToType", markerOrRange: "1" }, // getTypeDefinitionAtPosition + { type: "goToDefinition", markerOrRange: "1" }, // getDefinitionAndBoundSpan + { type: "getDefinitionAtPosition", markerOrRange: "1" }, // getDefinitionAtPosition +); \ No newline at end of file diff --git a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping.ts b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping.ts index fed3a3a4f289e..1286b95b2bdf1 100644 --- a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping.ts +++ b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping.ts @@ -75,9 +75,9 @@ goTo.file("/index.ts"); verify.getEmitOutput(["/dist/index.js", "/dist/index.d.ts.map", "/dist/index.d.ts"]); -verify.goToDefinition("1", "2"); // getDefinitionAndBoundSpan -verify.goToType("1", "SomeType"); // getTypeDefinitionAtPosition -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAtPosition -goTo.implementation(); // getImplementationAtPosition -verify.caretAtMarker("2"); +verify.baselineCommands( + { type: "goToImplementation", markerOrRange: "1" }, // getImplementationAtPosition + { type: "goToType", markerOrRange: "1" }, // getTypeDefinitionAtPosition + { type: "goToDefinition", markerOrRange: "1" }, // getDefinitionAndBoundSpan + { type: "getDefinitionAtPosition", markerOrRange: "1" }, // getDefinitionAtPosition +); diff --git a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping2.ts b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping2.ts index 21f67813d682f..047c60c0d0659 100644 --- a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping2.ts +++ b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping2.ts @@ -80,9 +80,9 @@ goTo.file("/index.ts"); verify.getEmitOutput(["/dist/index.js.map", "/dist/index.js", "/dist/index.d.ts.map", "/dist/index.d.ts"]); -verify.goToDefinition("1", "2"); // getDefinitionAndBoundSpan -verify.goToType("1", "SomeType"); // getTypeDefinitionAtPosition -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAtPosition -goTo.implementation(); // getImplementationAtPosition -verify.caretAtMarker("2"); +verify.baselineCommands( + { type: "goToImplementation", markerOrRange: "1" }, // getImplementationAtPosition + { type: "goToType", markerOrRange: "1" }, // getTypeDefinitionAtPosition + { type: "goToDefinition", markerOrRange: "1" }, // getDefinitionAndBoundSpan + { type: "getDefinitionAtPosition", markerOrRange: "1" }, // getDefinitionAtPosition +); diff --git a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping3.ts b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping3.ts index 6c1ac985c8bc0..faeb064b62f8d 100644 --- a/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping3.ts +++ b/tests/cases/fourslash/server/declarationMapsGeneratedMapsEnableMapping3.ts @@ -76,9 +76,9 @@ goTo.file("/index.ts"); verify.getEmitOutput(["/dist/index.js", "/dist/index.d.ts.map", "/dist/index.d.ts"]); -verify.goToDefinition("1", "2"); // getDefinitionAndBoundSpan -verify.goToType("1", "SomeType"); // getTypeDefinitionAtPosition -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAtPosition -goTo.implementation(); // getImplementationAtPosition -verify.caretAtMarker("2"); +verify.baselineCommands( + { type: "goToImplementation", markerOrRange: "1" }, // getImplementationAtPosition + { type: "goToType", markerOrRange: "1" }, // getTypeDefinitionAtPosition + { type: "goToDefinition", markerOrRange: "1" }, // getDefinitionAndBoundSpan + { type: "getDefinitionAtPosition", markerOrRange: "1" }, // getDefinitionAtPosition +); diff --git a/tests/cases/fourslash/server/declarationMapsGoToDefinitionRelativeSourceRoot.ts b/tests/cases/fourslash/server/declarationMapsGoToDefinitionRelativeSourceRoot.ts index 6f5a0c19bf382..ba3447a28c4ff 100644 --- a/tests/cases/fourslash/server/declarationMapsGoToDefinitionRelativeSourceRoot.ts +++ b/tests/cases/fourslash/server/declarationMapsGoToDefinitionRelativeSourceRoot.ts @@ -37,4 +37,4 @@ ////const instance = new mod.Foo(); ////instance.[|/*1*/methodName|]({member: 12}); -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/server/declarationMapsGoToDefinitionSameNameDifferentDirectory.ts b/tests/cases/fourslash/server/declarationMapsGoToDefinitionSameNameDifferentDirectory.ts index 68495d7006c94..078aecb6418bb 100644 --- a/tests/cases/fourslash/server/declarationMapsGoToDefinitionSameNameDifferentDirectory.ts +++ b/tests/cases/fourslash/server/declarationMapsGoToDefinitionSameNameDifferentDirectory.ts @@ -54,5 +54,4 @@ //// } ////} -verify.goToDefinition("1", "2"); -verify.goToDefinition("3", "4"); +verify.baselineGoToDefinition("1", "3"); diff --git a/tests/cases/fourslash/server/declarationMapsOutOfDateMapping.ts b/tests/cases/fourslash/server/declarationMapsOutOfDateMapping.ts index 2768e0d9621b5..4ef398d0d673b 100644 --- a/tests/cases/fourslash/server/declarationMapsOutOfDateMapping.ts +++ b/tests/cases/fourslash/server/declarationMapsOutOfDateMapping.ts @@ -27,6 +27,4 @@ ////import { Foo/*1*/ } from "a"; goTo.file("/index.ts"); - -goTo.marker("1"); -verify.goToDefinitionIs("2"); // getDefinitionAndBoundSpan +verify.baselineGetDefinitionAtPosition("1"); // getDefinitionAndBoundSpan diff --git a/tests/cases/fourslash/server/definition01.ts b/tests/cases/fourslash/server/definition01.ts index 70921b72ed409..2760a38d0a6e1 100644 --- a/tests/cases/fourslash/server/definition01.ts +++ b/tests/cases/fourslash/server/definition01.ts @@ -7,4 +7,4 @@ // @Filename: a.ts //// /*2*/export class Foo {} -verify.goToDefinition("1", "2"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/server/documentHighlights01.ts b/tests/cases/fourslash/server/documentHighlights01.ts index 0acfbcb9d11c4..235f8af5e679e 100644 --- a/tests/cases/fourslash/server/documentHighlights01.ts +++ b/tests/cases/fourslash/server/documentHighlights01.ts @@ -5,4 +5,4 @@ //// [|f|]([|f|]); ////} -verify.rangesAreDocumentHighlights(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/server/documentHighlights02.ts b/tests/cases/fourslash/server/documentHighlights02.ts index 3fd71d4a65db5..a5f06ddd5c2d4 100644 --- a/tests/cases/fourslash/server/documentHighlights02.ts +++ b/tests/cases/fourslash/server/documentHighlights02.ts @@ -14,4 +14,4 @@ goTo.file("a.ts"); goTo.file("b.ts"); -verify.rangesAreDocumentHighlights(); +verify.baselineDocumentHighlights(test.ranges(), { filesToSearch: ["a.ts", "b.ts"] }); diff --git a/tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts b/tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts index c96e510c52258..1829ce91f0379 100644 --- a/tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts +++ b/tests/cases/fourslash/server/documentHighlightsTypeParameterInHeritageClause01.ts @@ -3,4 +3,4 @@ ////interface I<[|T|]> extends I<[|T|]>, [|T|] { ////} -verify.rangesAreDocumentHighlights(); \ No newline at end of file +verify.baselineDocumentHighlights(); \ No newline at end of file diff --git a/tests/cases/fourslash/server/goToDefinitionScriptImportServer.ts b/tests/cases/fourslash/server/goToDefinitionScriptImportServer.ts index 4d781c004d34e..2629c9d9904b9 100644 --- a/tests/cases/fourslash/server/goToDefinitionScriptImportServer.ts +++ b/tests/cases/fourslash/server/goToDefinitionScriptImportServer.ts @@ -19,6 +19,4 @@ // does not exist, but should return a response to it anyway so an editor can create it. //// import [|/*3*/"./foo.txt"|]; -verify.goToDefinition("1", { marker: "1d", unverified: true }); -verify.goToDefinition("2", { marker: "2d", unverified: true }); -verify.goToDefinition("3", { file: "/foo.txt", unverified: true }); +verify.baselineGoToDefinition("1", "2", "3"); diff --git a/tests/cases/fourslash/server/goToImplementation_inDifferentFiles.ts b/tests/cases/fourslash/server/goToImplementation_inDifferentFiles.ts index 591e8de360845..5d1f785480f3a 100644 --- a/tests/cases/fourslash/server/goToImplementation_inDifferentFiles.ts +++ b/tests/cases/fourslash/server/goToImplementation_inDifferentFiles.ts @@ -16,4 +16,4 @@ //// func(); ////} -verify.allRangesAppearInImplementationList(""); +verify.baselineGoToImplementation(""); diff --git a/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts b/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts index 6b636839e1781..83dd652fc349f 100644 --- a/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts +++ b/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts @@ -66,7 +66,4 @@ // @Filename: /index.ts //// import { [|/*start*/add|] } from 'lodash'; -verify.goToSourceDefinition("start", [ - { marker: "variable", unverified: true }, - { marker: "property", unverified: true }, -]); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource11_propertyOfAlias.ts b/tests/cases/fourslash/server/goToSource11_propertyOfAlias.ts index 9856d82610946..0437d712723e5 100644 --- a/tests/cases/fourslash/server/goToSource11_propertyOfAlias.ts +++ b/tests/cases/fourslash/server/goToSource11_propertyOfAlias.ts @@ -12,4 +12,4 @@ //// import { a } from './a'; //// a.[|a/*start*/|] -verify.goToSourceDefinition("start", "end"); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource12_callbackParam.ts b/tests/cases/fourslash/server/goToSource12_callbackParam.ts index 948591ba48e5f..1da3aef7d3279 100644 --- a/tests/cases/fourslash/server/goToSource12_callbackParam.ts +++ b/tests/cases/fourslash/server/goToSource12_callbackParam.ts @@ -40,4 +40,4 @@ //// yargs.[|/*start*/positional|](); //// }); -verify.goToSourceDefinition("start", { marker: "end", unverified: true }); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource13_nodenext.ts b/tests/cases/fourslash/server/goToSource13_nodenext.ts index 99a3a29ef2ec9..55013b6a77f52 100644 --- a/tests/cases/fourslash/server/goToSource13_nodenext.ts +++ b/tests/cases/fourslash/server/goToSource13_nodenext.ts @@ -32,4 +32,4 @@ //// import leftPad = require("left-pad"); //// /*start*/leftPad("", 4); -verify.goToSourceDefinition("start", "end"); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource14_unresolvedRequireDestructuring.ts b/tests/cases/fourslash/server/goToSource14_unresolvedRequireDestructuring.ts index 426dc11107488..396a13b99c06e 100644 --- a/tests/cases/fourslash/server/goToSource14_unresolvedRequireDestructuring.ts +++ b/tests/cases/fourslash/server/goToSource14_unresolvedRequireDestructuring.ts @@ -5,4 +5,4 @@ // @Filename: /index.js //// const { blah/**/ } = require("unresolved"); -verify.goToSourceDefinition("", []); +verify.baselineGoToSourceDefinition(""); diff --git a/tests/cases/fourslash/server/goToSource1_localJsBesideDts.ts b/tests/cases/fourslash/server/goToSource1_localJsBesideDts.ts index 5685db4076977..236d1ea87bb29 100644 --- a/tests/cases/fourslash/server/goToSource1_localJsBesideDts.ts +++ b/tests/cases/fourslash/server/goToSource1_localJsBesideDts.ts @@ -10,5 +10,4 @@ //// import { a } from [|"./a"/*moduleSpecifier*/|]; //// [|a/*identifier*/|] -verify.goToSourceDefinition("identifier", "end"); -verify.goToSourceDefinition("moduleSpecifier", { file: "/a.js" }) \ No newline at end of file +verify.baselineGoToSourceDefinition("identifier", "moduleSpecifier"); \ No newline at end of file diff --git a/tests/cases/fourslash/server/goToSource2_nodeModulesWithTypes.ts b/tests/cases/fourslash/server/goToSource2_nodeModulesWithTypes.ts index a2166786c54cd..3c5e6c60dc151 100644 --- a/tests/cases/fourslash/server/goToSource2_nodeModulesWithTypes.ts +++ b/tests/cases/fourslash/server/goToSource2_nodeModulesWithTypes.ts @@ -15,4 +15,4 @@ //// import { a } from "foo"; //// [|a/*start*/|] -verify.goToSourceDefinition("start", "end"); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource3_nodeModulesAtTypes.ts b/tests/cases/fourslash/server/goToSource3_nodeModulesAtTypes.ts index 152d411040a12..9ce5534a1fd3d 100644 --- a/tests/cases/fourslash/server/goToSource3_nodeModulesAtTypes.ts +++ b/tests/cases/fourslash/server/goToSource3_nodeModulesAtTypes.ts @@ -18,4 +18,4 @@ //// import { a } from "foo"; //// [|a/*start*/|] -verify.goToSourceDefinition("start", "end"); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts b/tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts index f2b7e2b73457f..b70485aedcca0 100644 --- a/tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts +++ b/tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts @@ -13,5 +13,7 @@ //// import { a } from './a'; //// [|a/*start*/|] -verify.goToDefinition("start", "end"); -verify.goToSourceDefinition("start", "end"); +verify.baselineCommands( + { type: "goToSourceDefinition", markerOrRange: "start" }, + { type: "goToDefinition", markerOrRange: "start" }, +); diff --git a/tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts b/tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts index 87b7065a17b0a..d3bc2852d7981 100644 --- a/tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts +++ b/tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts @@ -20,5 +20,8 @@ //// import { a } from 'foo/a'; //// [|a/*start*/|] -verify.goToDefinition("start", "end"); -verify.goToSourceDefinition("start", "end"); +verify.baselineCommands( + { type: "goToSourceDefinition", markerOrRange: "start" }, + { type: "goToDefinition", markerOrRange: "start" }, +); + diff --git a/tests/cases/fourslash/server/goToSource7_conditionallyMinified.ts b/tests/cases/fourslash/server/goToSource7_conditionallyMinified.ts index 6a0e13962ba38..3d2e2fba6c660 100644 --- a/tests/cases/fourslash/server/goToSource7_conditionallyMinified.ts +++ b/tests/cases/fourslash/server/goToSource7_conditionallyMinified.ts @@ -30,4 +30,4 @@ // @Filename: /index.ts //// import { [|/*start*/useState|] } from 'react'; -verify.goToSourceDefinition("start", ["production", "development"]); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource8_mapFromAtTypes.ts b/tests/cases/fourslash/server/goToSource8_mapFromAtTypes.ts index 690ae8b5fa5a6..4ce2dc78392bd 100644 --- a/tests/cases/fourslash/server/goToSource8_mapFromAtTypes.ts +++ b/tests/cases/fourslash/server/goToSource8_mapFromAtTypes.ts @@ -74,7 +74,4 @@ // @Filename: /index.ts //// import { [|/*start*/add|] } from 'lodash'; -verify.goToSourceDefinition("start", [ - { marker: "variable", unverified: true }, - { marker: "property", unverified: true }, -]); +verify.baselineGoToSourceDefinition("start"); diff --git a/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts b/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts index 024fe099b4d8e..3e1c96f84bd5a 100644 --- a/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts +++ b/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts @@ -75,7 +75,4 @@ //// import [|/*defaultImport*/_|], { [|/*unresolvableNamedImport*/foo|] } from [|/*moduleSpecifier*/'lodash'|]; //// _.[|/*propertyAccess*/add|] -verify.goToSourceDefinition("defaultImport", { file: "/node_modules/lodash/lodash.js", unverified: true }); -verify.goToSourceDefinition("unresolvableNamedImport", { file: "/node_modules/lodash/lodash.js", unverified: true }); -verify.goToSourceDefinition("moduleSpecifier", { file: "/node_modules/lodash/lodash.js", unverified: true }); -verify.goToSourceDefinition("propertyAccess", [{ marker: "variable", unverified: true }, { marker: "property", unverified: true }]) +verify.baselineGoToSourceDefinition("defaultImport", "unresolvableNamedImport", "moduleSpecifier"); diff --git a/tests/cases/fourslash/server/implementation01.ts b/tests/cases/fourslash/server/implementation01.ts index ddd8c79232401..553b9e800621e 100644 --- a/tests/cases/fourslash/server/implementation01.ts +++ b/tests/cases/fourslash/server/implementation01.ts @@ -3,6 +3,4 @@ ////interface Fo/*1*/o {} ////class /*2*/Bar implements Foo {} -goTo.marker('1'); -goTo.implementation(); -verify.caretAtMarker('2'); \ No newline at end of file +verify.baselineGoToImplementation('1'); diff --git a/tests/cases/fourslash/server/jsdocCallbackTagRename01.ts b/tests/cases/fourslash/server/jsdocCallbackTagRename01.ts index e4cd7d06feb14..b733c909cc5d2 100644 --- a/tests/cases/fourslash/server/jsdocCallbackTagRename01.ts +++ b/tests/cases/fourslash/server/jsdocCallbackTagRename01.ts @@ -12,4 +12,4 @@ //// var t; const [rDef, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInStrings: false, findInComments: true, ranges }); +verify.baselineRename(ranges[0], { findInStrings: false, findInComments: true }); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts index dd72fdd42addb..8a60a0e3e2955 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagGoToDefinition.ts @@ -19,7 +19,4 @@ //// /** @type {Animal} */ //// var animal; animal.[|animalName/*4*/|] -verify.goToDefinition({ - 3: "1", - 4: "2" -}); +verify.baselineGoToDefinition("3", "4"); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagRename01.ts b/tests/cases/fourslash/server/jsdocTypedefTagRename01.ts index 14f24b4c6eabb..5634dd1e5c2c2 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagRename01.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagRename01.ts @@ -12,4 +12,4 @@ //// var numberLike; const [rDef, ...ranges] = test.ranges(); -verify.rangesAreRenameLocations({ findInComments: true, ranges }); +verify.baselineRename(ranges, { findInComments: true }); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagRename02.ts b/tests/cases/fourslash/server/jsdocTypedefTagRename02.ts index 30c99deb0a86c..38f6c0645cc03 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagRename02.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagRename02.ts @@ -9,4 +9,4 @@ //// var numberLike; const [rDef, ...ranges] = test.ranges(); -verify.rangesAreRenameLocations({ findInComments: true, ranges }); +verify.baselineRename(ranges, { findInComments: true }); diff --git a/tests/cases/fourslash/server/jsdocTypedefTagRename03.ts b/tests/cases/fourslash/server/jsdocTypedefTagRename03.ts index 310235bc8e901..e3512b49c5421 100644 --- a/tests/cases/fourslash/server/jsdocTypedefTagRename03.ts +++ b/tests/cases/fourslash/server/jsdocTypedefTagRename03.ts @@ -14,4 +14,4 @@ //// var person; goTo.file('jsDocTypedef_form3.js') -verify.rangesAreRenameLocations({ findInComments: true, ranges: test.rangesByText().get("Person") }); +verify.baselineRename(test.rangesByText().get("Person"), { findInComments: true }); diff --git a/tests/cases/fourslash/server/occurrences01.ts b/tests/cases/fourslash/server/occurrences01.ts index f6e39d55b91fc..7d59d132df8a5 100644 --- a/tests/cases/fourslash/server/occurrences01.ts +++ b/tests/cases/fourslash/server/occurrences01.ts @@ -10,4 +10,4 @@ //// continue foo; ////} -verify.rangesAreOccurrences(false); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/server/occurrences02.ts b/tests/cases/fourslash/server/occurrences02.ts index 4cf8f1bcac30a..af5c478891fc9 100644 --- a/tests/cases/fourslash/server/occurrences02.ts +++ b/tests/cases/fourslash/server/occurrences02.ts @@ -4,4 +4,4 @@ //// [|f|]([|f|]); ////} -verify.rangesAreOccurrences(); +verify.baselineDocumentHighlights(); diff --git a/tests/cases/fourslash/server/rename01.ts b/tests/cases/fourslash/server/rename01.ts index 66afa70a8e882..66909fe3aeeb1 100644 --- a/tests/cases/fourslash/server/rename01.ts +++ b/tests/cases/fourslash/server/rename01.ts @@ -8,4 +8,4 @@ ////}|] const [rDef, ...ranges] = test.ranges(); -verify.renameLocations(ranges[0], { findInStrings: true, findInComments: true, ranges }); +verify.baselineRename(ranges[0], { findInStrings: true, findInComments: true, }); diff --git a/tests/cases/fourslash/server/renameInConfiguredProject.ts b/tests/cases/fourslash/server/renameInConfiguredProject.ts index f9e567fef049d..2bc7e3272ca12 100644 --- a/tests/cases/fourslash/server/renameInConfiguredProject.ts +++ b/tests/cases/fourslash/server/renameInConfiguredProject.ts @@ -10,4 +10,4 @@ ////{ "files": ["referencesForGlobals_1.ts", "referencesForGlobals_2.ts"] } const [rDef, ...ranges] = test.ranges(); -verify.rangesAreRenameLocations({ findInStrings: true, findInComments: true, ranges }); +verify.baselineRename(ranges, { findInStrings: true, findInComments: true }); diff --git a/tests/cases/fourslash/server/typedefinition01.ts b/tests/cases/fourslash/server/typedefinition01.ts index 40e1dcf43bb92..8c59c4ace3112 100644 --- a/tests/cases/fourslash/server/typedefinition01.ts +++ b/tests/cases/fourslash/server/typedefinition01.ts @@ -7,4 +7,4 @@ // @Filename: a.ts ////export class /*2*/Foo {} -verify.goToType("1", "2"); +verify.baselineGoToType("1"); diff --git a/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts b/tests/cases/fourslash/shims-pp/getDefinitionAtPosition-pp.ts similarity index 79% rename from tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts rename to tests/cases/fourslash/shims-pp/getDefinitionAtPosition-pp.ts index 67e8c44c84c4e..16179d873cdc4 100644 --- a/tests/cases/fourslash/shims-pp/getDefinitionAtPosition.ts +++ b/tests/cases/fourslash/shims-pp/getDefinitionAtPosition-pp.ts @@ -14,4 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); +verify.baselineGetDefinitionAtPosition("remoteVariableReference", "remoteFunctionReference", "remoteClassReference", "remoteInterfaceReference", "remoteModuleReference"); diff --git a/tests/cases/fourslash/shims-pp/getImplementationAtPosition.ts b/tests/cases/fourslash/shims-pp/getImplementationAtPosition-pp.ts similarity index 75% rename from tests/cases/fourslash/shims-pp/getImplementationAtPosition.ts rename to tests/cases/fourslash/shims-pp/getImplementationAtPosition-pp.ts index 22de573d2c9d8..b555cc882682e 100644 --- a/tests/cases/fourslash/shims-pp/getImplementationAtPosition.ts +++ b/tests/cases/fourslash/shims-pp/getImplementationAtPosition-pp.ts @@ -21,8 +21,4 @@ //// } //// } -for (const marker of ["fooClass", "barClass", "barHelloFunction", "this"]) { - goTo.marker(marker + 'Reference'); - goTo.implementation(); - verify.caretAtMarker(marker + 'Implementation'); -}; +verify.baselineGoToImplementation("fooClassReference", "barClassReference", "barHelloFunctionReference", "thisReference"); diff --git a/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition-pp.ts b/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition-pp.ts new file mode 100644 index 0000000000000..80f65974fce01 --- /dev/null +++ b/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition-pp.ts @@ -0,0 +1,22 @@ +/// + +/////*0*/ +////interface A { +//// foo: string; +////} +////function foo(x: A) { +//// x.f/*1*/oo +////} + +verify.baselineCommands( + { type: "documentHighlights", markerOrRange: "1" }, + { + type: "customWork", + work: () => { + goTo.marker("0"); + edit.insert("\n"); + return "Added new line"; + }, + }, + { type: "documentHighlights", markerOrRange: "1" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition.ts b/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition.ts deleted file mode 100644 index 5514e22dce929..0000000000000 --- a/tests/cases/fourslash/shims-pp/getOccurrencesAtPosition.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// - -/////*0*/ -////interface A { -//// foo: string; -////} -////function foo(x: A) { -//// x.f/*1*/oo -////} - -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); - -goTo.marker("0"); -edit.insert("\n"); - -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); \ No newline at end of file diff --git a/tests/cases/fourslash/shims-pp/getRenameInfo.ts b/tests/cases/fourslash/shims-pp/getRenameInfo-pp.ts similarity index 79% rename from tests/cases/fourslash/shims-pp/getRenameInfo.ts rename to tests/cases/fourslash/shims-pp/getRenameInfo-pp.ts index 3f32093ca148b..42c60bb4dc2ad 100644 --- a/tests/cases/fourslash/shims-pp/getRenameInfo.ts +++ b/tests/cases/fourslash/shims-pp/getRenameInfo-pp.ts @@ -7,4 +7,4 @@ //// "this is a reference to Bar in a string" ////}|] -verify.rangesWithSameTextAreRenameLocations("Bar"); +verify.baselineRenameAtRangesWithText("Bar"); diff --git a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective-pp.ts similarity index 82% rename from tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts rename to tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective-pp.ts index f318de7c25e0e..78be01520219f 100644 --- a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective-pp.ts @@ -8,4 +8,4 @@ //// /// //// $.x; -verify.goToDefinition("1", "0"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/shims/goToTypeDefinition.ts b/tests/cases/fourslash/shims-pp/goToTypeDefinition-pp.ts similarity index 78% rename from tests/cases/fourslash/shims/goToTypeDefinition.ts rename to tests/cases/fourslash/shims-pp/goToTypeDefinition-pp.ts index b6bbd83900367..bef31e039a17a 100644 --- a/tests/cases/fourslash/shims/goToTypeDefinition.ts +++ b/tests/cases/fourslash/shims-pp/goToTypeDefinition-pp.ts @@ -9,4 +9,4 @@ // @Filename: goToTypeDefinition_Consumption.ts /////*reference*/c = undefined; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference", "definition"); diff --git a/tests/cases/fourslash/shims/getDefinitionAtPosition.ts b/tests/cases/fourslash/shims/getDefinitionAtPosition-shims.ts similarity index 79% rename from tests/cases/fourslash/shims/getDefinitionAtPosition.ts rename to tests/cases/fourslash/shims/getDefinitionAtPosition-shims.ts index 67e8c44c84c4e..16179d873cdc4 100644 --- a/tests/cases/fourslash/shims/getDefinitionAtPosition.ts +++ b/tests/cases/fourslash/shims/getDefinitionAtPosition-shims.ts @@ -14,4 +14,4 @@ ////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } ////var fooVar = /*remoteModuleReference*/remoteModule.foo; -verify.goToDefinitionForMarkers("remoteVariable", "remoteFunction", "remoteClass", "remoteInterface", "remoteModule"); +verify.baselineGetDefinitionAtPosition("remoteVariableReference", "remoteFunctionReference", "remoteClassReference", "remoteInterfaceReference", "remoteModuleReference"); diff --git a/tests/cases/fourslash/shims/getImplementationAtPosition.ts b/tests/cases/fourslash/shims/getImplementationAtPosition-shims.ts similarity index 75% rename from tests/cases/fourslash/shims/getImplementationAtPosition.ts rename to tests/cases/fourslash/shims/getImplementationAtPosition-shims.ts index 22de573d2c9d8..b555cc882682e 100644 --- a/tests/cases/fourslash/shims/getImplementationAtPosition.ts +++ b/tests/cases/fourslash/shims/getImplementationAtPosition-shims.ts @@ -21,8 +21,4 @@ //// } //// } -for (const marker of ["fooClass", "barClass", "barHelloFunction", "this"]) { - goTo.marker(marker + 'Reference'); - goTo.implementation(); - verify.caretAtMarker(marker + 'Implementation'); -}; +verify.baselineGoToImplementation("fooClassReference", "barClassReference", "barHelloFunctionReference", "thisReference"); diff --git a/tests/cases/fourslash/shims/getOccurrencesAtPosition-shims.ts b/tests/cases/fourslash/shims/getOccurrencesAtPosition-shims.ts new file mode 100644 index 0000000000000..80f65974fce01 --- /dev/null +++ b/tests/cases/fourslash/shims/getOccurrencesAtPosition-shims.ts @@ -0,0 +1,22 @@ +/// + +/////*0*/ +////interface A { +//// foo: string; +////} +////function foo(x: A) { +//// x.f/*1*/oo +////} + +verify.baselineCommands( + { type: "documentHighlights", markerOrRange: "1" }, + { + type: "customWork", + work: () => { + goTo.marker("0"); + edit.insert("\n"); + return "Added new line"; + }, + }, + { type: "documentHighlights", markerOrRange: "1" }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts b/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts deleted file mode 100644 index 5514e22dce929..0000000000000 --- a/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// - -/////*0*/ -////interface A { -//// foo: string; -////} -////function foo(x: A) { -//// x.f/*1*/oo -////} - -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); - -goTo.marker("0"); -edit.insert("\n"); - -goTo.marker("1"); -verify.occurrencesAtPositionCount(2); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getRenameInfo.ts b/tests/cases/fourslash/shims/getRenameInfo-shims.ts similarity index 79% rename from tests/cases/fourslash/shims/getRenameInfo.ts rename to tests/cases/fourslash/shims/getRenameInfo-shims.ts index 3f32093ca148b..42c60bb4dc2ad 100644 --- a/tests/cases/fourslash/shims/getRenameInfo.ts +++ b/tests/cases/fourslash/shims/getRenameInfo-shims.ts @@ -7,4 +7,4 @@ //// "this is a reference to Bar in a string" ////}|] -verify.rangesWithSameTextAreRenameLocations("Bar"); +verify.baselineRenameAtRangesWithText("Bar"); diff --git a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective-shims.ts similarity index 82% rename from tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts rename to tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective-shims.ts index f318de7c25e0e..78be01520219f 100644 --- a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts +++ b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective-shims.ts @@ -8,4 +8,4 @@ //// /// //// $.x; -verify.goToDefinition("1", "0"); +verify.baselineGoToDefinition("1"); diff --git a/tests/cases/fourslash/shims-pp/goToTypeDefinition.ts b/tests/cases/fourslash/shims/goToTypeDefinition-shims.ts similarity index 80% rename from tests/cases/fourslash/shims-pp/goToTypeDefinition.ts rename to tests/cases/fourslash/shims/goToTypeDefinition-shims.ts index b6bbd83900367..30fbd1ff77950 100644 --- a/tests/cases/fourslash/shims-pp/goToTypeDefinition.ts +++ b/tests/cases/fourslash/shims/goToTypeDefinition-shims.ts @@ -9,4 +9,4 @@ // @Filename: goToTypeDefinition_Consumption.ts /////*reference*/c = undefined; -verify.goToType("reference", "definition"); +verify.baselineGoToType("reference"); diff --git a/tests/cases/fourslash/transitiveExportImports.ts b/tests/cases/fourslash/transitiveExportImports.ts index 47ff1d5ac0c21..c48beac168712 100644 --- a/tests/cases/fourslash/transitiveExportImports.ts +++ b/tests/cases/fourslash/transitiveExportImports.ts @@ -21,8 +21,9 @@ const aRanges = [a0, a1]; const bRanges = [b0, c2]; const cRanges = [c0, c1]; -verify.baselineFindAllReferences('1', '2', '3', '4') - -verify.rangesAreRenameLocations(aRanges); -verify.rangesAreRenameLocations(bRanges); -verify.rangesAreRenameLocations(cRanges); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['1', '2', '3', '4'] }, + { type: "findRenameLocations", markerOrRange: aRanges }, + { type: "findRenameLocations", markerOrRange: bRanges }, + { type: "findRenameLocations", markerOrRange: cRanges }, +); diff --git a/tests/cases/fourslash/transitiveExportImports2.ts b/tests/cases/fourslash/transitiveExportImports2.ts index c275159cf826b..f028ffe1344b5 100644 --- a/tests/cases/fourslash/transitiveExportImports2.ts +++ b/tests/cases/fourslash/transitiveExportImports2.ts @@ -19,8 +19,9 @@ const aRanges = [A0, A1]; const bRanges = [B0, B1]; const cRanges = [B2]; -verify.baselineFindAllReferences("A", "B", "C") - -verify.rangesAreRenameLocations(aRanges); -verify.renameLocations([B0, B1], [...bRanges, ...cRanges]); -verify.renameLocations(B2, [{ range: B2, prefixText: "B as " }]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ["A", "B", "C"] }, + { type: "findRenameLocations", markerOrRange: aRanges }, + { type: "findRenameLocations", markerOrRange: [B0, B1] }, + { type: "findRenameLocations", markerOrRange: B2 }, +); \ No newline at end of file diff --git a/tests/cases/fourslash/transitiveExportImports3.ts b/tests/cases/fourslash/transitiveExportImports3.ts index e8fd90d0fc77e..a1b5555dcd3e7 100644 --- a/tests/cases/fourslash/transitiveExportImports3.ts +++ b/tests/cases/fourslash/transitiveExportImports3.ts @@ -11,10 +11,10 @@ verify.noErrors(); const [f0Def, f0, f1Def, f1, g0, f2Def, f2, g1Def, g1] = test.ranges(); - -verify.baselineFindAllReferences('f', 'g0', 'g1', 'f2') - -verify.renameLocations([f0, f1], [f0, f1, f2]); -verify.renameLocations(f2, [{ range: f2, prefixText: "f as " }]); -verify.renameLocations(g0, [g0, g1]); -verify.renameLocations(g1, [{ range: g1, prefixText: "g as " }]); +verify.baselineCommands( + { type: "findAllReferences", markerOrRange: ['f', 'g0', 'g1', 'f2'] }, + { type: "findRenameLocations", markerOrRange: [f0, f1] }, + { type: "findRenameLocations", markerOrRange: f2 }, + { type: "findRenameLocations", markerOrRange: g0 }, + { type: "findRenameLocations", markerOrRange: g1 }, +); diff --git a/tests/cases/fourslash/tsxGoToDefinitionClassInDifferentFile.ts b/tests/cases/fourslash/tsxGoToDefinitionClassInDifferentFile.ts index 7aa1c11fdc333..30df7a4229b98 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionClassInDifferentFile.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionClassInDifferentFile.ts @@ -11,5 +11,4 @@ verify.noErrors(); -goTo.marker("use"); -verify.goToDefinitionIs("def"); +verify.baselineGetDefinitionAtPosition("use"); diff --git a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts index f0b58155bf5a8..b3cc52d2e0264 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionClasses.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionClasses.ts @@ -15,8 +15,8 @@ //// var y = ; //// var z = <[|MyCl/*w*/ass|] wrong= 'hello' />; -verify.goToDefinition({ - c: "ct", - p: "pt", - w: "ct" -}); +verify.baselineGoToDefinition( + "c", + "p", + "w", +); diff --git a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts index 9b202a64c213e..cc2654de9d202 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionIntrinsics.ts @@ -15,8 +15,8 @@ //// var y = <[|s/*ss*/pan|] />; //// var z =
; -verify.goToDefinition({ - ds: "dt", - ss: "st", - ps: "pt" -}); +verify.baselineGoToDefinition( + "ds", + "ss", + "ps", +); diff --git a/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction1.ts b/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction1.ts index 6ef0e93445fb3..cc69e10dba613 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction1.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction1.ts @@ -21,11 +21,11 @@ //// let opt2 = <[|Op/*three*/t|] propx={100} [|opt/*p2*/ional|] />; //// let opt3 = <[|Op/*four*/t|] wr/*p3*/ong />; -verify.goToDefinition({ - one: "opt", - two: "opt", - three: "opt", - four: "opt", - p1: "pt1", - p2: "pt2" -}); +verify.baselineGoToDefinition( + "one", + "two", + "three", + "four", + "p1", + "p2", +); diff --git a/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction2.ts b/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction2.ts index 8541e3c391b4e..4b355901bc16a 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction2.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionStatelessFunction2.ts @@ -30,11 +30,11 @@ //// let opt = <[|Main/*fifthTarget*/Button|] goTo="goTo" />; //// let opt = <[|Main/*sixthTarget*/Button|] wrong />; -verify.goToDefinition({ - firstTarget: "firstSource", - secondTarget: "firstSource", - thirdTarget: "firstSource", - fourthTarget: "firstSource", - fifthTarget: "secondSource", - sixthTarget: "firstSource" -}); +verify.baselineGoToDefinition( + "firstTarget", + "secondTarget", + "thirdTarget", + "fourthTarget", + "fifthTarget", + "sixthTarget", +); diff --git a/tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts b/tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts index 957b6b811e0d8..0ad7b9fa9d17d 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts @@ -21,6 +21,4 @@ //// var /*def*/SFCComp = SFC1 || SFC2; //// <[|SFC/*one*/Comp|] x /> -verify.goToDefinition({ - "one": ["def", "pt1"], -}); +verify.baselineGoToDefinition("one"); diff --git a/tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts b/tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts index 548ce94db5a29..0192afe940cbe 100644 --- a/tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts +++ b/tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts @@ -21,6 +21,4 @@ //// <[|RC/*one*/Comp|] /> -verify.goToDefinition({ - "one": "pt1" -}) \ No newline at end of file +verify.baselineGoToDefinition("one"); \ No newline at end of file diff --git a/tests/cases/fourslash/tsxRename1.ts b/tests/cases/fourslash/tsxRename1.ts index 23deda61fff6b..ceae278980863 100644 --- a/tests/cases/fourslash/tsxRename1.ts +++ b/tests/cases/fourslash/tsxRename1.ts @@ -12,4 +12,4 @@ //// } //// } //// var x = [|<[|{| "contextRangeIndex": 2 |}div|] />|]; -verify.rangesWithSameTextAreRenameLocations("div"); +verify.baselineRenameAtRangesWithText("div"); diff --git a/tests/cases/fourslash/tsxRename2.ts b/tests/cases/fourslash/tsxRename2.ts index 8cbb2b473ee56..12acfe0996bf4 100644 --- a/tests/cases/fourslash/tsxRename2.ts +++ b/tests/cases/fourslash/tsxRename2.ts @@ -13,4 +13,4 @@ //// } //// var x =
; -verify.rangesWithSameTextAreRenameLocations("name"); +verify.baselineRenameAtRangesWithText("name"); diff --git a/tests/cases/fourslash/tsxRename3.ts b/tests/cases/fourslash/tsxRename3.ts index cb190f7d59989..9fd0b2f8a47b3 100644 --- a/tests/cases/fourslash/tsxRename3.ts +++ b/tests/cases/fourslash/tsxRename3.ts @@ -16,4 +16,4 @@ //// //// var x = ; -verify.rangesWithSameTextAreRenameLocations("name"); +verify.baselineRenameAtRangesWithText("name"); diff --git a/tests/cases/fourslash/tsxRename4.ts b/tests/cases/fourslash/tsxRename4.ts index cb561019c5914..8b8d58228b7e5 100644 --- a/tests/cases/fourslash/tsxRename4.ts +++ b/tests/cases/fourslash/tsxRename4.ts @@ -17,4 +17,4 @@ ////[|<[|{| "contextRangeIndex": 7 |}div|]> |] verify.noErrors(); -verify.rangesWithSameTextAreRenameLocations("MyClass", "div"); \ No newline at end of file +verify.baselineRenameAtRangesWithText("MyClass", "div"); \ No newline at end of file diff --git a/tests/cases/fourslash/tsxRename5.ts b/tests/cases/fourslash/tsxRename5.ts index 0edc6f4f0db86..050a398df691b 100644 --- a/tests/cases/fourslash/tsxRename5.ts +++ b/tests/cases/fourslash/tsxRename5.ts @@ -16,4 +16,4 @@ //// [|var [|{| "contextRangeIndex": 0 |}nn|]: string;|] //// var x = ; -verify.rangesWithSameTextAreRenameLocations("nn"); +verify.baselineRenameAtRangesWithText("nn"); diff --git a/tests/cases/fourslash/tsxRename6.ts b/tests/cases/fourslash/tsxRename6.ts index 8c8d252bb0099..147383fe27a74 100644 --- a/tests/cases/fourslash/tsxRename6.ts +++ b/tests/cases/fourslash/tsxRename6.ts @@ -22,4 +22,4 @@ //// let opt3 = [|<[|{| "contextRangeIndex": 8 |}Opt|] wrong />|]; //// let opt4 = [|<[|{| "contextRangeIndex": 10 |}Opt|] propx={100} propString="hi" />|]; -verify.rangesWithSameTextAreRenameLocations("Opt"); +verify.baselineRenameAtRangesWithText("Opt"); diff --git a/tests/cases/fourslash/tsxRename7.ts b/tests/cases/fourslash/tsxRename7.ts index 8e23a7edef418..d8177ba250219 100644 --- a/tests/cases/fourslash/tsxRename7.ts +++ b/tests/cases/fourslash/tsxRename7.ts @@ -21,4 +21,4 @@ //// let opt2 = ; //// let opt3 = ; -verify.rangesWithSameTextAreRenameLocations("propx"); +verify.baselineRenameAtRangesWithText("propx"); diff --git a/tests/cases/fourslash/tsxRename8.ts b/tests/cases/fourslash/tsxRename8.ts index a75c2833bb269..c269be97c43ba 100644 --- a/tests/cases/fourslash/tsxRename8.ts +++ b/tests/cases/fourslash/tsxRename8.ts @@ -23,4 +23,4 @@ //// let opt3 = ; //// let opt4 = ; -verify.rangesAreRenameLocations(); +verify.baselineRename(); diff --git a/tests/cases/fourslash/tsxRename9.ts b/tests/cases/fourslash/tsxRename9.ts index 0818c61cd734c..671af124f7349 100644 --- a/tests/cases/fourslash/tsxRename9.ts +++ b/tests/cases/fourslash/tsxRename9.ts @@ -30,10 +30,10 @@ //// let opt = [|<[|{| "contextRangeIndex": 23 |}MainButton|] [|[|{| "contextRangeIndex": 25 |}goTo|]="goTo"|] />|]; //// let opt = [|<[|{| "contextRangeIndex": 27 |}MainButton|] [|wrong|] />|]; -verify.rangesWithSameTextAreRenameLocations( +verify.baselineRenameAtRangesWithText([ "onClick", "goTo", "MainButton", "ignore-prop", "wrong" -); \ No newline at end of file +]); \ No newline at end of file